module ActiveRecord::CounterCache
Active Record Counter Cache¶ ↑
Private Instance Methods
_create_record(attribute_names = self.attribute_names)
click to toggle source
Calls superclass method
# File lib/active_record/counter_cache.rb, line 200 def _create_record(attribute_names = self.attribute_names) id = super counter_cached_association_names.each do |association_name| association(association_name).increment_counters end id end
_foreign_keys_equal?(fkey1, fkey2)
click to toggle source
# File lib/active_record/counter_cache.rb, line 226 def _foreign_keys_equal?(fkey1, fkey2) fkey1 == fkey2 || Array(fkey1).map(&:to_sym) == Array(fkey2).map(&:to_sym) end
destroy_row()
click to toggle source
Calls superclass method
# File lib/active_record/counter_cache.rb, line 210 def destroy_row affected_rows = super if affected_rows > 0 counter_cached_association_names.each do |association_name| association = association(association_name) unless destroyed_by_association && _foreign_keys_equal?(destroyed_by_association.foreign_key, association.reflection.foreign_key) association.decrement_counters end end end affected_rows end