'Chave desconhecida (s): ter' Em Ruby on Rails ActiveRecord Localizar método
-
11-09-2019 - |
Pergunta
Eu tenho um projeto que precisa usar uma função agregrate para classificar e retornar registros relevantes de um dos meus modelos do Active Record. O problema é que, apesar de vê-lo usado em trilhos inúmeros tutoriais, e apesar de ser na documentação ActiveRecord on-line, meu aplicativo Rails lança este erro para mim quando o método é chamado:
Unknown key(s): having
Todas as ideias por quê?
Eu estou usando isso como este (eu tenho um :group =>
antes que trabalha, pois sem o:. Tendo as executa o código corretamente, é só não filtrada - que eu preciso):
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]
)
Solução
Você tem certeza que sua versão do RoR é até à data? ActiveRecord fornece suporte para: tendo por (eu acho) de 2 anos agora, mas provavelmente você está apenas usando uma versão desatualizada?
Se você não pode atualizar seu ambiente de rails você ainda pode usar a cláusula HAVING, adicionando-o no final do seu:. Declaração grupo
Melhor desejou, Fabian