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]
)
Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top