1

アクティブなレコードモデルの1つから関連するレコードを並べ替えて返すために、集計関数を使用する必要があるプロジェクトがあります。問題は、それが多くの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は:having for(i think)2年間のサポートを提供しますが、おそらく古いバージョンを使用しているだけですか?

Rails環境を更新できない場合でも、:groupステートメントの最後にHAVING句を追加することで、HAVING句を使用できます。

よろしくお願いします、ファビアン

于 2009-12-02T00:41:48.063 に答える