# File lib/active_record/counter_cache.rb, line 71 def update_counters(id, counters) updates = counters.map do |counter_name, value| operator = value < 0 ? '-' : '+' quoted_column = connection.quote_column_name(counter_name) "#{quoted_column} = COALESCE(#{quoted_column}, 0) #{operator} #{value.abs}" end IdentityMap.remove_by_id(symbolized_base_class, id) if IdentityMap.enabled? update_all(updates.join(', '), primary_key => id ) end