class User < ActiveRecord::Base has_many :likes has_many :liked_things, :through => :likes end class Thing < ActiveRecord::Base has_many :likes has_many :liked_by_users, :through => :likes end class Like < ActiveRecord::Base belongs_to :user belongs_to :shot end This is my setup, and I have a `likes_count` column on Things Table. Is there any way to keep that count updating using counter_cache ? I got it working counter_cache on has_many association but failing to do same with has_many through association.
on 2015-01-10 20:35
on 2016-01-07 15:31
I am struggling with this as well. What appears to be happening is that the deletes from the join table do not fire the counter_cache update. From what I have read, delete's do not fire events and that is the way it is designed in Rails 4. I have tried multiple workarounds from doing an after_save event, putting the join table in it's own model, etc... Nothing I have done seems to decrement the count. Anxious to see if any Ruby experts see this post and let us know the best way to fix this. John