diff options
author | James Le Cuirot <chewi@aura-online.co.uk> | 2010-06-09 12:33:40 +0100 |
---|---|---|
committer | Pratik Naik <pratiknaik@gmail.com> | 2010-06-09 18:17:52 +0530 |
commit | 0265c708b9696c3943518ad5f3dabdc22c5eba11 (patch) | |
tree | 7656b7510358e01f53626dd74f611ff652d29b81 /activerecord/test/cases/nested_attributes_test.rb | |
parent | 6898c167c3906b87dcf52cf6c088ae9f08f3ad22 (diff) | |
download | rails-0265c708b9696c3943518ad5f3dabdc22c5eba11.tar.gz rails-0265c708b9696c3943518ad5f3dabdc22c5eba11.tar.bz2 rails-0265c708b9696c3943518ad5f3dabdc22c5eba11.zip |
Don't overwrite unsaved updates when loading an association but preserve the order of the loaded records. [#4642 state:resolved]
Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
Diffstat (limited to 'activerecord/test/cases/nested_attributes_test.rb')
-rw-r--r-- | activerecord/test/cases/nested_attributes_test.rb | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/activerecord/test/cases/nested_attributes_test.rb b/activerecord/test/cases/nested_attributes_test.rb index 685b11cb03..a87683bd97 100644 --- a/activerecord/test/cases/nested_attributes_test.rb +++ b/activerecord/test/cases/nested_attributes_test.rb @@ -466,6 +466,20 @@ module NestedAttributesOnACollectionAssociationTests assert_equal 'Grace OMalley', @child_1.reload.name end + def test_should_not_overwrite_unsaved_updates_when_loading_association + @pirate.reload + @pirate.send(association_setter, [{ :id => @child_1.id, :name => 'Grace OMalley' }]) + @pirate.send(@association_name).send(:load_target) + assert_equal 'Grace OMalley', @pirate.send(@association_name).target.find { |r| r.id == @child_1.id }.name + end + + def test_should_preserve_order_when_not_overwriting_unsaved_updates + @pirate.reload + @pirate.send(association_setter, [{ :id => @child_1.id, :name => 'Grace OMalley' }]) + @pirate.send(@association_name).send(:load_target) + assert_equal @pirate.send(@association_name).target.first.id, @child_1.id + end + def test_should_take_a_hash_with_composite_id_keys_and_assign_the_attributes_to_the_associated_models @child_1.stubs(:id).returns('ABC1X') @child_2.stubs(:id).returns('ABC2X') |