aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/associations/association_collection.rb
diff options
context:
space:
mode:
authorNeeraj Singh <neerajdotname@gmail.com>2010-07-08 10:09:39 -0400
committerNeeraj Singh <neerajdotname@gmail.com>2010-07-08 10:09:39 -0400
commit4a1207d54077348b67fad95ffde5710cf0be31bd (patch)
treede721528fa81f1dfe50449c2d5c3985f513e83cd /activerecord/lib/active_record/associations/association_collection.rb
parentf6fa6cf6117e691899c821b8999bd7dfb3f48b38 (diff)
parentdc364fdc595405aa3d5735e60d46ad3f9544a65b (diff)
downloadrails-4a1207d54077348b67fad95ffde5710cf0be31bd.tar.gz
rails-4a1207d54077348b67fad95ffde5710cf0be31bd.tar.bz2
rails-4a1207d54077348b67fad95ffde5710cf0be31bd.zip
Merge branch 'master' of github.com:lifo/docrails
Diffstat (limited to 'activerecord/lib/active_record/associations/association_collection.rb')
-rw-r--r--activerecord/lib/active_record/associations/association_collection.rb7
1 files changed, 6 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/associations/association_collection.rb b/activerecord/lib/active_record/associations/association_collection.rb
index ddf4ce4058..a4e08c7d41 100644
--- a/activerecord/lib/active_record/associations/association_collection.rb
+++ b/activerecord/lib/active_record/associations/association_collection.rb
@@ -393,7 +393,12 @@ module ActiveRecord
@target = find_target.map do |f|
i = @target.index(f)
t = @target.delete_at(i) if i
- (t && t.changed?) ? t : f
+ if t && t.changed?
+ t
+ else
+ f.mark_for_destruction if t && t.marked_for_destruction?
+ f
+ end
end + @target
else
@target = find_target