2009-12-01 40 views
1

我有一個項目,需要使用agregrate函數來排序並從我的活動記錄模型中返回相關記錄。問題是,儘管看到它在許多軌道教程中使用,儘管它的網上ActiveRecord的文檔之中,我的Rails應用程序在我拋出這個錯誤時,該方法被稱爲:'未知的鍵:有'在Ruby on Rails的ActiveRecord查找方法

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] 
) 
+1

您能發表實際的代碼嗎?像我這樣的事情,通常會發生錯別字或其他一些簡單的事情,讓你拍額頭。當然,現在我已經說過了,有人會用一個技術性很強的答案來回答,這個答案引用了幾張不同的燈塔門票和一個解決方法。然後我會打我的額頭。用完整代碼編輯的 – Baldu 2009-12-02 00:04:16

+0

。 – Ash 2009-12-02 00:21:43

+1

您使用的是哪個版本的Rails? 2.3中增加了:有選項。 – Baldu 2009-12-02 00:41:45

回答

4

是你確定你的RoR版本是最新的? ActiveRecord爲以下方面提供支持:對於(我認爲)現在有2年了,但可能只是使用過時的版本?

如果你不能更新你的rails環境,你仍然可以通過將它添加到你的:group語句的末尾來使用HAVING子句。

祝您好, Fabian

+0

完美,現貨! – Ash 2009-12-02 00:52:22

+0

儘管我使用的是v 2.2.2,但從來沒有介意,它現在正在工作,這就是我所關心的。 – Ash 2009-12-02 00:52:53

相關問題