'Chiave sconosciuta (s): avere' in Ruby on Rails ActiveRecord Trova Metodo
-
11-09-2019 - |
Domanda
Ho un progetto che ha bisogno di usare una funzione agregrate per ordinare e restituire i record rilevanti da uno dei miei modelli record attivo. Il problema è che, nonostante vedendo è utilizzato su numerosi tutorial rotaie, e nonostante sia nella documentazione in linea ActiveRecord, la mia applicazione Rails getta questo errore a me quando il metodo viene chiamato:
Unknown key(s): having
Tutte le idee perché?
Io lo utilizzo come questo (ho un :group =>
prima che funziona, come senza il: avere il codice viene eseguito correttamente, non è solo filtrato - che ho bisogno.):
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]
)
Soluzione
Sei sicuro che la versione di RoR è aggiornata? ActiveRecord fornisce il supporto per: avere per (credo) 2 anni a questa parte, ma probabilmente stai usando solo una versione non aggiornata?
Se non è possibile aggiornare il proprio ambiente di rotaie è ancora possibile utilizzare la clausola HAVING aggiungendolo alla fine del tuo:. Dichiarazione del gruppo
Best desiderato, Fabian