Question

J'ai un projet qui a besoin d'utiliser une fonction agregrate pour trier et renvoyer les documents pertinents d'un de mes modèles de disques actifs. Le problème est, en dépit de le voir utilisé sur de nombreux tutoriels de rails, et bien qu'il soit dans la documentation en ligne ActiveRecord, mon application Rails jette cette erreur à moi lorsque la méthode est appelée:

Unknown key(s): having

Toutes les idées pourquoi?

Je l'utilise comme ceci (j'ai un :group => avant d'qui fonctionne, comme sans: avoir le code exécute correctement, il est tout simplement pas filtré - dont j'ai besoin.):

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]
)
Était-ce utile?

La solution

Êtes-vous sûr que votre version de RoR est à jour? ActiveRecord prend en charge: ayant pour (je pense) 2 ans, mais probablement vous êtes juste en utilisant une version obsolète?

Si vous ne pouvez pas mettre à jour votre environnement de rails, vous pouvez toujours utiliser la clause HAVING en l'ajoutant à la fin de votre. Déclaration du groupe

Best souhaité, Fabian

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top