diff --git a/app/models/product.rb b/app/models/product.rb index e62a2be..554d773 100644 --- a/app/models/product.rb +++ b/app/models/product.rb @@ -164,13 +164,21 @@ class Product < ActiveRecord::Base def qualifiers_list=(qualifiers) self.product_qualifiers.destroy_all qualifiers.each do |qualifier_id, certifier_id| - self.product_qualifiers.create(:qualifier_id => qualifier_id, :certifier_id => certifier_id) if qualifier_id != 'nil' + if qualifier_id != 'nil' + product_qualifier = ProductQualifier.new + product_qualifier.product = self + product_qualifier.qualifier_id = qualifier_id + product_qualifier.certifier_id = certifier_id + product_qualifier.save! + end end end def order_inputs!(order = []) order.each_with_index do |input_id, array_index| - self.inputs.find(input_id).update_attributes(:position => array_index + 1) + input = self.inputs.find(input_id) + input.position = array_index + 1 + input.save! end end diff --git a/test/unit/product_test.rb b/test/unit/product_test.rb index b0698c1..7ac1aa5 100644 --- a/test/unit/product_test.rb +++ b/test/unit/product_test.rb @@ -25,7 +25,7 @@ class ProductTest < ActiveSupport::TestCase should 'create product' do assert_difference Product, :count do - p = Product.new(:name => 'test product1', :product_category => @product_category, :enterprise_id => @profile.id) + p = build(Product, :name => 'test product1', :product_category => @product_category, :enterprise_id => @profile.id) assert p.save end end @@ -82,7 +82,7 @@ class ProductTest < ActiveSupport::TestCase should 'save image on create product' do assert_difference Product, :count do - p = Product.create!(:name => 'test product1', :product_category => @product_category, :image_builder => { + p = create(Product, :name => 'test product1', :product_category => @product_category, :image_builder => { :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png') }, :enterprise_id => @profile.id) assert_equal p.image(true).filename, 'rails.png' @@ -158,7 +158,7 @@ class ProductTest < ActiveSupport::TestCase ["12.345.678", 12345678.00], ["12,345,678", 12345678.00] ].each do |input, output| - product = Product.new(:price => input) + product = build(Product, :price => input) assert_equal output, product.price end end @@ -173,13 +173,13 @@ class ProductTest < ActiveSupport::TestCase ["12.345.678", 12345678.00], ["12,345,678", 12345678.00] ].each do |input, output| - product = Product.new(:discount => input) + product = build(Product, :discount => input) assert_equal output, product.discount end end should 'strip name with malformed HTML when sanitize' do - product = Product.new(:product_category => @product_category) + product = build(Product, :product_category => @product_category) product.name = "