私は国モデルを持っており、最も出現頻度の高い国を表示したいと考えています。国名は列「mame」に保持されていますが、国データベースは事前に入力されており、関係は国です
has_many recipes
とレシピ
belongs_to country
これまでのところ、
Country.group('name').order('count_name DESC').limit(1).count('name')
しかし、テーブルにはすべての国が 1 つあるので、これは機能しませんか? country_id の使用回数をカウントする必要はありますか? もしそうなら、その構文は何ですか?でしょうか
Recipe.group('country_id').order('count_country_id DESC').limit(1).count('country_id')
または結合を使用して選択
Country.joins(:recipes).select('countries.*, count(country_id) as "country_count"').group(:country_id).order(' country_count desc')
任意のポインタをいただければ幸いです