diff options
author | Jeremy Kemper <jeremy@bitsweat.net> | 2013-03-20 15:51:30 -0700 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2013-03-20 15:51:30 -0700 |
commit | 70d0537d5550958d7e006787de869ce9046101fc (patch) | |
tree | 121d61ad1bc38b739f0434d4f808c8dd09ef8d9c /activerecord/lib/active_record/associations | |
parent | 066907d1cb3e7e390287dff9c324a4091d76a97b (diff) | |
parent | 66679c8ecd9e916cbd96745b853603bc2fed7639 (diff) | |
download | rails-70d0537d5550958d7e006787de869ce9046101fc.tar.gz rails-70d0537d5550958d7e006787de869ce9046101fc.tar.bz2 rails-70d0537d5550958d7e006787de869ce9046101fc.zip |
Merge pull request #7706 from iangreenleaf/multiple_counter_caches
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 |