Ich versuche, den häufigsten Textwert (Land) aus der Datenbank zurückzugeben.Ermitteln Sie den häufigsten Spaltenwert zwischen allen Datensätzen
Während mein erster Versuch wird keine Fehler produzieren, vermute ich, es nicht ist der häufigste Wert zurück:
@mostpopularroast = Roast.group(:id).order("count(country) DESC").first
Interessant mir genau das gleiche Resultat ergibt sollte ich ASC stattdessen verwenden.
Ich versuche daher jetzt eine Lösung aus diesem similar question:
@mostpopularroast = Roast.group('country').order('count(*)').limit(1).pluck(:country).first
Aber das mir den Fehler undefined method 'country' for "Country 1":String
gibt. Country 1
ist der Wert in der Datenbank.
mein Modell
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
Dies beschwert ich muss gruppieren auf ': ID'. Und das bringt mich nur zum ursprünglichen Fehler zurück. –
@SimonCooper: Sie müssen nicht gruppieren auf ': ID', wenn dies die genaue Abfrage ist, die Sie verwenden – potashin
@SimonCooper es würde helfen, wenn Sie die Abfrage, die Sie ausführen, und die generierte SQL-Abfrage-Ausgabe – potashin