counter_cache for has_many through associations

class User < ActiveRecord::Base

has_many :likes

has_many :liked_things, :through => :likes


class Thing < ActiveRecord::Base

has_many :likes

has_many :liked_by_users, :through => :likes


class Like < ActiveRecord::Base

belongs_to :user

belongs_to :shot



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.