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]
)
È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top