counter_cache for has_many through associations

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.

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