Kilkupoziomowe asocjacje i grupowanie

Mam taka strukture powiazan miedzy modelami:

class Forum < ActiveRecord::Base
  has_many :topics

class Topic < ActiveRecord::Base
  has_many :posts
  belongs_to :forum

class Post < ActiveRecord::Base
  belongs_to :topic
  has_many :post_links
  has_many :links, ->{ uniq }, through: :post_links, dependent: :destroy

class PostLink < ActiveRecord::Base
  belongs_to :post
  belongs_to :link

class Link < ActiveRecord::Base
  has_many :post_links
  has_many :posts, ->{ uniq }, through: :post_links, dependent: :destroy

Chciałbym wygenerować wszystkie linki z forum o id = 1, posortowane po częstości występowania w danym forum.

Próbowałem coś w tym stylu, ale nie działa :frowning:

Doszedłem do wydobycia linkow z danego forum:

`Link.includes(posts: [topic: :forum]).where('forums.id = ?',1).references(:forums)`

Nie za bardzo wiem jak teraz to pogrupowac i posortowac po liczbie linkow.

Bedę wdzięczny za pomoc.