diff options
author | Eugene Kenny <elkenny@gmail.com> | 2018-01-14 20:46:19 +0000 |
---|---|---|
committer | Eugene Kenny <elkenny@gmail.com> | 2018-01-14 20:46:19 +0000 |
commit | 3e71bc4b048bef2ae7723dde5082020fd984bbd6 (patch) | |
tree | 988395bcd199720560661a316b8c2ee99b44c984 /activerecord/lib/active_record/associations | |
parent | fd04c8cbb6627ef65ea728b5026b21bd24471c18 (diff) | |
download | rails-3e71bc4b048bef2ae7723dde5082020fd984bbd6.tar.gz rails-3e71bc4b048bef2ae7723dde5082020fd984bbd6.tar.bz2 rails-3e71bc4b048bef2ae7723dde5082020fd984bbd6.zip |
Don't update counter cache when through record was not destroyed
When removing a record from a has many through association, the counter
cache was being updated even if the through record halted the callback
chain and prevented itself from being destroyed.
Diffstat (limited to 'activerecord/lib/active_record/associations')
-rw-r--r-- | activerecord/lib/active_record/associations/has_many_through_association.rb | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/associations/has_many_through_association.rb b/activerecord/lib/active_record/associations/has_many_through_association.rb index 7a3bef969b..24766dd315 100644 --- a/activerecord/lib/active_record/associations/has_many_through_association.rb +++ b/activerecord/lib/active_record/associations/has_many_through_association.rb @@ -145,7 +145,7 @@ module ActiveRecord case method when :destroy if scope.klass.primary_key - count = scope.destroy_all.length + count = scope.destroy_all.count(&:destroyed?) else scope.each(&:_run_destroy_callbacks) count = scope.delete_all |