diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2010-11-16 13:43:44 -0800 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2010-11-16 14:28:19 -0800 |
commit | c801f233df9d20c59d9756a5279365603dc5cbbd (patch) | |
tree | f6a530c622aa41f5003595898a8abf2e5e9614c8 /activerecord/lib/active_record | |
parent | 1395545404eb0b28af08108b50d7cfe3fa9a5357 (diff) | |
download | rails-c801f233df9d20c59d9756a5279365603dc5cbbd.tar.gz rails-c801f233df9d20c59d9756a5279365603dc5cbbd.tar.bz2 rails-c801f233df9d20c59d9756a5279365603dc5cbbd.zip |
reloading an association will properly set attributes of instantiated objects. Thanks Brian Palmer [#5802 state:resolved]
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r-- | activerecord/lib/active_record/associations/association_collection.rb | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/associations/association_collection.rb b/activerecord/lib/active_record/associations/association_collection.rb index 7cdd91e9b2..600f59026e 100644 --- a/activerecord/lib/active_record/associations/association_collection.rb +++ b/activerecord/lib/active_record/associations/association_collection.rb @@ -379,7 +379,9 @@ module ActiveRecord if i @target.delete_at(i).tap do |t| keys = ["id"] + t.changes.keys + (f.attribute_names - t.attribute_names) - t.attributes = f.attributes.except(*keys) + f.attributes.except(*keys).each do |k,v| + t.send("#{k}=", v) + end end else f |