Я только что создал поле counter_cache, и контроллер выглядит так.counter_cache с has_many: через
@users = User.where(:sex => 2).order('received_likes_count')
Ассоциация в User.rb является
has_many :received_likes, :through => :attachments, :source => :likes, :dependent => :destroy
Проблема заключается в том, что counter_cache объявлен в belong_to из Like.rb, и я не знаю, как сказать ему, что это для has_many: через ассоциацию.
belongs_to :user, :counter_cache => :received_likes
Решение, предлагаемое Aivils выглядит более правильный/монастырь Rails, чем добавление крючков. – jakeonrails