Foge.joins(:foo_bar).group('foo_bar.name') .order('count_foo_bars_name desc') .limit(10) .count('foo_bar.name') 記述の順番が直感的ではないので注意。count_foo_bars_nameの部分は一度ActiveRecordが吐き出してるSQL文を見て COUNT(*) AS <この部分> を抜き出してくると良い。 結果作られるSQL文はこんな感じ SELECT COUNT(foo_bar.name) AS count_foo_bars_name, foo_bars.name AS foo_bars_name FROM "Foges" INNER JOIN "foo_bars" ON "foo_bars"."id" = "foges"."foo_bar_id" GROUP BY f