0
データベースから最も一般的なテキスト値(国)を返そうとしています。すべてのレコードの間で最も一般的な列の値を取得します。
私の最初の試みがエラーを生成されていない一方で、私はそれが最も一般的な値を返していない疑いがある:
@mostpopularroast = Roast.group(:id).order("count(country) DESC").first
興味深い、それは私が代わりにASCを使用する必要があり、全く同じ結果を与えます。
従って私は今、このsimilar questionからソリューションをしようとしている:
@mostpopularroast = Roast.group('country').order('count(*)').limit(1).pluck(:country).first
しかし、これは私にエラーundefined method 'country' for "Country 1":String
を与えています。 Country 1
はdbの値です。
私のモデル
class CreateRoasts < ActiveRecord::Migration[5.1]
def change
create_table :roasts do |t|
t.string :roaster
t.string :name
t.string :country
t.string :region
t.string :bestfor
t.string :beans
t.string :roast
t.string :slug
t.timestamps
end
end
end
私は ':id'でグループ化する必要があります。そうすることで元のエラーに戻ります。 –
@SimonCooper:あなたが使用している正確なクエリの場合は、 ':id'をグループ化する必要はありません。 – potashin
@ SimonCooper実行中のクエリと生成されたSQLクエリ出力を投稿した場合に役立ちます – potashin