diff options
author | Ian Young <ian.greenleaf@gmail.com> | 2012-09-17 14:57:13 -0700 |
---|---|---|
committer | Ian Young <ian.greenleaf@gmail.com> | 2013-03-20 13:43:07 -0700 |
commit | 66679c8ecd9e916cbd96745b853603bc2fed7639 (patch) | |
tree | 7b0b2f5b91aa7e48db3beb7d184922be55d37f5c /activerecord/lib/active_record/associations | |
parent | 34c7e73c1def1312e59ef1f334586ff2f668246e (diff) | |
download | rails-66679c8ecd9e916cbd96745b853603bc2fed7639.tar.gz rails-66679c8ecd9e916cbd96745b853603bc2fed7639.tar.bz2 rails-66679c8ecd9e916cbd96745b853603bc2fed7639.zip |
Update other counter caches on destroy
Diffstat (limited to 'activerecord/lib/active_record/associations')
-rw-r--r-- | activerecord/lib/active_record/associations/builder/belongs_to.rb | 2 | ||||
-rw-r--r-- | activerecord/lib/active_record/associations/has_many_association.rb | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/associations/builder/belongs_to.rb b/activerecord/lib/active_record/associations/builder/belongs_to.rb index fbcb21118d..9ac561b997 100644 --- a/activerecord/lib/active_record/associations/builder/belongs_to.rb +++ b/activerecord/lib/active_record/associations/builder/belongs_to.rb @@ -31,7 +31,7 @@ module ActiveRecord::Associations::Builder end def belongs_to_counter_cache_before_destroy_for_#{name} - unless marked_for_destruction? + unless destroyed_by_association && destroyed_by_association.foreign_key.to_sym == #{foreign_key.to_sym.inspect} record = #{name} record.class.decrement_counter(:#{cache_column}, record.id) unless record.nil? end diff --git a/activerecord/lib/active_record/associations/has_many_association.rb b/activerecord/lib/active_record/associations/has_many_association.rb index b7b4d7e3ae..29fae809da 100644 --- a/activerecord/lib/active_record/associations/has_many_association.rb +++ b/activerecord/lib/active_record/associations/has_many_association.rb @@ -22,7 +22,7 @@ module ActiveRecord else if options[:dependent] == :destroy # No point in executing the counter update since we're going to destroy the parent anyway - load_target.each(&:mark_for_destruction) + load_target.each { |t| t.destroyed_by_association = reflection } destroy_all else delete_all |