diff options
author | Ernie Miller <ernie@erniemiller.org> | 2012-10-05 18:36:44 -0400 |
---|---|---|
committer | Ernie Miller <ernie@erniemiller.org> | 2012-10-12 16:21:56 -0400 |
commit | 990a938cf7527b654cef06674f25f3632920bad7 (patch) | |
tree | de50bcacd34633b7cf275544c83cf24ea4b1149c /activerecord/lib/active_record/associations | |
parent | eefb34438563b6b58e65b2ac0e06c543f76e2247 (diff) | |
download | rails-990a938cf7527b654cef06674f25f3632920bad7.tar.gz rails-990a938cf7527b654cef06674f25f3632920bad7.tar.bz2 rails-990a938cf7527b654cef06674f25f3632920bad7.zip |
Fix has_many assocation w/select load after create
If you create a new record via a collection association proxy that has
not loaded its target, and which selects additional attributes through
the association, then when the proxy loads its target, it will
inadvertently trigger a deprecation notice during attribute writing when
CollectionAssociation#merge_target_lists attempts to do its thing, since
the newly loaded records will possess attributes the created record does
not.
Diffstat (limited to 'activerecord/lib/active_record/associations')
-rw-r--r-- | activerecord/lib/active_record/associations/collection_association.rb | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/associations/collection_association.rb b/activerecord/lib/active_record/associations/collection_association.rb index 67a1e457be..2c852f6efc 100644 --- a/activerecord/lib/active_record/associations/collection_association.rb +++ b/activerecord/lib/active_record/associations/collection_association.rb @@ -409,7 +409,7 @@ module ActiveRecord if mem_index mem_record = memory.delete_at(mem_index) - (record.attribute_names - mem_record.changes.keys).each do |name| + ((record.attribute_names & mem_record.attribute_names) - mem_record.changes.keys).each do |name| mem_record[name] = record[name] end |