Use primary key in conditions, not 'id' [#4395 state:resolved]
Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
This commit is contained in:
parent
bce2c0ce37
commit
38da0ace77
@ -355,7 +355,7 @@ def assign_nested_attributes_for_collection_association(association_name, attrib
|
||||
association.to_a
|
||||
else
|
||||
attribute_ids = attributes_collection.map {|a| a['id'] || a[:id] }.compact
|
||||
attribute_ids.present? ? association.all(:conditions => {:id => attribute_ids}) : []
|
||||
attribute_ids.present? ? association.all(:conditions => {association.primary_key => attribute_ids}) : []
|
||||
end
|
||||
|
||||
attributes_collection.each do |attributes|
|
||||
|
@ -6,6 +6,8 @@
|
||||
require "models/treasure"
|
||||
require "models/man"
|
||||
require "models/interest"
|
||||
require "models/owner"
|
||||
require "models/pet"
|
||||
require 'active_support/hash_with_indifferent_access'
|
||||
|
||||
module AssertRaiseWithMessage
|
||||
@ -707,3 +709,26 @@ def test_limit_with_exceeding_records
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
class TestNestedAttributesWithNonStandardPrimaryKeys < ActiveRecord::TestCase
|
||||
fixtures :owners, :pets
|
||||
|
||||
def setup
|
||||
Owner.accepts_nested_attributes_for :pets
|
||||
|
||||
@owner = owners(:ashley)
|
||||
@pet1, @pet2 = pets(:chew), pets(:mochi)
|
||||
|
||||
@params = {
|
||||
:pets_attributes => {
|
||||
'0' => { :id => @pet1.id, :name => 'Foo' },
|
||||
'1' => { :id => @pet2.id, :name => 'Bar' }
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
def test_should_update_existing_records_with_non_standard_primary_key
|
||||
@owner.update_attributes(@params)
|
||||
assert_equal ['Foo', 'Bar'], @owner.pets.map(&:name)
|
||||
end
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user