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]
)
War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top