diff options
author | Pratik Naik <pratiknaik@gmail.com> | 2009-10-08 00:14:37 +0100 |
---|---|---|
committer | Pratik Naik <pratiknaik@gmail.com> | 2009-10-08 00:15:36 +0100 |
commit | 0c27d0886e880f90240ad2004f1600c1b1c4bfed (patch) | |
tree | 2950c22f1c5dd6386794334a24af11d2b69087c7 /activerecord | |
parent | c352ec060ceddc43f63863c5d16ae31c3a72e42f (diff) | |
download | rails-0c27d0886e880f90240ad2004f1600c1b1c4bfed.tar.gz rails-0c27d0886e880f90240ad2004f1600c1b1c4bfed.tar.bz2 rails-0c27d0886e880f90240ad2004f1600c1b1c4bfed.zip |
Use indifferent access attributes instead of stringifying them
Diffstat (limited to 'activerecord')
-rw-r--r-- | activerecord/lib/active_record/nested_attributes.rb | 4 | ||||
-rw-r--r-- | activerecord/test/cases/nested_attributes_test.rb | 8 |
2 files changed, 10 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/nested_attributes.rb b/activerecord/lib/active_record/nested_attributes.rb index 654e91bece..ec6c02db38 100644 --- a/activerecord/lib/active_record/nested_attributes.rb +++ b/activerecord/lib/active_record/nested_attributes.rb @@ -283,7 +283,7 @@ module ActiveRecord # <tt>:_destroy</tt> key set to a truthy value, then the existing record # will be marked for destruction. def assign_nested_attributes_for_one_to_one_association(association_name, attributes, allow_destroy) - attributes = attributes.stringify_keys + attributes = attributes.with_indifferent_access if attributes['id'].blank? unless reject_new_record?(association_name, attributes) @@ -336,7 +336,7 @@ module ActiveRecord end attributes_collection.each do |attributes| - attributes = attributes.stringify_keys + attributes = attributes.with_indifferent_access if attributes['id'].blank? unless reject_new_record?(association_name, attributes) diff --git a/activerecord/test/cases/nested_attributes_test.rb b/activerecord/test/cases/nested_attributes_test.rb index bf9aa4e65f..e57e361520 100644 --- a/activerecord/test/cases/nested_attributes_test.rb +++ b/activerecord/test/cases/nested_attributes_test.rb @@ -104,6 +104,14 @@ class TestNestedAttributesInGeneral < ActiveRecord::TestCase pirate.ship_attributes = { :name => 'Red Pearl', :_reject_me_if_new => true } assert_difference('Ship.count') { pirate.save! } end + + def test_reject_if_with_indifferent_keys + Pirate.accepts_nested_attributes_for :ship, :reject_if => proc {|attributes| attributes[:name].blank? } + + pirate = Pirate.new(:catchphrase => "Stop wastin' me time") + pirate.ship_attributes = { :name => 'Hello Pearl' } + assert_difference('Ship.count') { pirate.save! } + end end class TestNestedAttributesOnAHasOneAssociation < ActiveRecord::TestCase |