module ActiveRecord::CounterCache::ClassMethods
def increment_counter(counter_name, id, by: 1, touch: nil)
# and update the updated_at value.
# Increment the posts_count column for the record with an id of 5
DiscussionBoard.increment_counter(:posts_count, 5, by: 3)
# by a specific amount.
# Increment the posts_count column for the record with an id of 5
DiscussionBoard.increment_counter(:posts_count, 5)
# Increment the posts_count column for the record with an id of 5
==== Examples
touch that column or an array of symbols to touch just those ones.
Pass +true+ to touch +updated_at+ and/or +updated_on+. Pass a symbol to
* :touch - Touch timestamp columns when updating.
* :by - The amount by which to increment the value. Defaults to +1+.
* +id+ - The id of the object that should be incremented or an array of ids.
* +counter_name+ - The name of the field that should be incremented.
==== Parameters
number of posts and comments there are, each time it is displayed.
posts_count and comments_count to avoid running an SQL query to calculate the
used to store aggregate values. For example, a +DiscussionBoard+ may cache
This method is used primarily for maintaining counter_cache columns that are
Increment a numeric field by one, via a direct SQL update.
def increment_counter(counter_name, id, by: 1, touch: nil) update_counters(id, counter_name => by, touch: touch) end