aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2010-11-16 13:43:44 -0800
committerAaron Patterson <aaron.patterson@gmail.com>2010-11-16 14:28:19 -0800
commitc801f233df9d20c59d9756a5279365603dc5cbbd (patch)
treef6a530c622aa41f5003595898a8abf2e5e9614c8 /activerecord/lib
parent1395545404eb0b28af08108b50d7cfe3fa9a5357 (diff)
downloadrails-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')
-rw-r--r--activerecord/lib/active_record/associations/association_collection.rb4
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