You need to specify the counter_cache option on the has_many side of the association when using a custom counter cache column. This is documented on the has_many association here: http://apidock.com/rails/ActiveRecord/Associations/ClassMethods/has_many [ci skip]

This commit is contained in:
Steve Lounsbury 2014-12-16 01:58:19 +00:00
parent 72a815c3fd
commit d60556e967

@ -879,10 +879,12 @@ class Order < ActiveRecord::Base
belongs_to :customer, counter_cache: :count_of_orders
end
class Customer < ActiveRecord::Base
has_many :orders
has_many :orders, counter_cache: :count_of_orders
end
```
NOTE: You only need to specify the :counter_cache option on the "has_many side" of the association when using a custom name for the counter cache.
Counter cache columns are added to the containing model's list of read-only attributes through `attr_readonly`.
##### `:dependent`
@ -1495,6 +1497,7 @@ The `has_many` association supports these options:
* `:as`
* `:autosave`
* `:class_name`
* `:counter_cache`
* `:dependent`
* `:foreign_key`
* `:inverse_of`
@ -1522,6 +1525,9 @@ class Customer < ActiveRecord::Base
end
```
##### `:counter_cache`
This option can be used to configure a custom named `:counter_cache`. You only need this option when you customized the name of your `:counter_cache` on the [belongs_to association](#options-for-belongs-to).
##### `:dependent`
Controls what happens to the associated objects when their owner is destroyed: