1

我有一个项目需要使用 agregrate 函数从我的一个活动记录模型中排序和返回相关记录。问题是,尽管在许多 Rails 教程中看到了它,并且尽管它在在线 ActiveRecord 文档中,但我的 Rails 应用程序在调用该方法时向我抛出了这个错误:

Unknown key(s): having

任何想法为什么?

我正在像这样使用它(我确实有一个:group =>在它之前工作的,因为没有 : 让代码正确执行,它只是没有被过滤 - 我需要。):

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]
)
4

1 回答 1

4

您确定您的 RoR 版本是最新的吗?ActiveRecord 支持 :have (我认为)2 年了,但您可能只是使用过时的版本?

如果您无法更新您的 rails 环境,您仍然可以通过将 HAVING 子句添加到 :group 语句的末尾来使用它。

祝你好运,法比安

于 2009-12-02T00:41:48.063 回答