diff options
Diffstat (limited to 'activerecord')
-rw-r--r-- | activerecord/lib/active_record/associations/belongs_to_association.rb | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/activerecord/lib/active_record/associations/belongs_to_association.rb b/activerecord/lib/active_record/associations/belongs_to_association.rb index 2c5ad9d1c0..5ce2a5dcb7 100644 --- a/activerecord/lib/active_record/associations/belongs_to_association.rb +++ b/activerecord/lib/active_record/associations/belongs_to_association.rb @@ -15,7 +15,7 @@ module ActiveRecord set_inverse_instance(record) @updated = true else - update_counters(record) + update_counters_without_record remove_keys end @@ -42,11 +42,15 @@ module ActiveRecord return unless counter_cache_name && owner.persisted? - if record - update_with_record record, counter_cache_name - else - update_without_record counter_cache_name - end + update_with_record record, counter_cache_name + end + + def update_counters_without_record + counter_cache_name = reflection.counter_cache_column + + return unless counter_cache_name && owner.persisted? + + update_without_record counter_cache_name end def update_with_record record, counter_cache_name |