J'ai un projet qui doit utiliser une fonction agregrate pour trier et retourner les enregistrements pertinents d'un de mes modèles d'enregistrements 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:'Clé (s) inconnue (s):' Dans Ruby on Rails ActiveRecord Trouver la méthode
Unknown key(s): having
Toutes les idées pourquoi?
J'utilise comme ça (j'ai un :group =>
avant d'qui fonctionne, comme sans:. Ayant 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]
)
Pouvez-vous envoyer le code réel? Des choses comme celle-ci se révèlent habituellement à des fautes de frappe ou à quelque autre chose simple qui vous fait gifler votre front, selon mon expérience. Bien sûr, maintenant que je l'ai dit, quelqu'un répondra avec une réponse profondément technique qui fait référence à plusieurs billets de phare différents et à une solution de contournement. Ensuite, je vais gifler mon front. – Baldu
modifié avec le code complet. – Ash
Quelle version de Rails utilisez-vous? L'option: ayant été ajoutée en 2.3. – Baldu