'Unknown Taste (n): mit' In Ruby on Rails Activerecord-Methode finden
-
11-09-2019 - |
Frage
Ich habe ein Projekt, das eine agregrate Funktion verwenden muss zu sortieren und zu relevanten Aufzeichnungen von einem meiner aktiven Datensatz Modellen zurück. Das Problem ist, trotz sehend es verwendete auf zahlreiche Schienen Tutorials und obwohl es in der Online-Dokumentation Active zu sein, meine Rails-Anwendung führt diesen Fehler bei mir, wenn die Methode aufgerufen wird:
Unknown key(s): having
Irgendwelche Ideen, warum?
Ich verwende es so (ich habe eine :group =>
, bevor es die, wie ohne das funktioniert: mit der Code korrekt ausgeführt, es ist nur nicht gefiltert - was ich brauche.):
Question.find(
:all,
:select => "questions.id, questions.text, questions.question_type_id, questions.meta, questions.max_answer_length, CAST(COUNT(form_questions.id) AS REAL) / CAST((SELECT COUNT(*) FROM application_forms) AS REAL) AS expr1",
:joins => "INNER JOIN form_questions ON questions.id = form_questions.question_id",
:order => "expr1 DESC",
:group => "questions.id, questions.text, questions.question_type_id, questions.meta, questions.max_answer_length",
:having => ["expr1 >= ?", 0.75]
)
Lösung
Sind Sie sicher, dass Ihre Version von RoR auf dem neuesten Stand ist? Active bietet Unterstützung für: having für (ich glaube) 2 Jahre jetzt, aber wahrscheinlich sind Sie nur eine veraltete Version verwenden?
Wenn Sie nicht Ihre Schienen-Umgebung aktualisieren können Sie immer noch die HAVING-Klausel verwenden, indem Sie es bis zum Ende Ihrer hinzufügen:. Gruppe Anweisung
Best gewünscht, Fabian