aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r--activerecord/lib/active_record/associations/has_many_association.rb4
1 files changed, 3 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/associations/has_many_association.rb b/activerecord/lib/active_record/associations/has_many_association.rb
index bb9dfd4f70..2e99177af4 100644
--- a/activerecord/lib/active_record/associations/has_many_association.rb
+++ b/activerecord/lib/active_record/associations/has_many_association.rb
@@ -72,8 +72,10 @@ module ActiveRecord
with_scope(@scope) do
@reflection.klass.update_all(updates, conditions)
end
+ end
- @owner.class.update_counters(@owner.id, cached_counter_attribute_name => -records.size) if has_cached_counter?
+ if has_cached_counter? && @reflection.options[:dependent] != :destroy
+ @owner.class.update_counters(@owner.id, cached_counter_attribute_name => -records.size)
end
end