我有需要使用agregrate功能进行排序,并从我的活动记录的车型之一返回相关记录的项目。问题是,尽管看到它在许多轨道教程中使用,尽管它的网上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]
)
有帮助吗?

解决方案

您确认您的回报率的版本是最新的吗? ActiveRecord的提供支持:现在具有(我认为)2年,但可能你仅仅使用过时的版本?

如果您不能更新您的Rails环境仍然可以将其添加到您的末尾使用HAVING子句:组声明

最佳希望, 费边

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top