«Неизвестный ключ (и): наличие» В Ruby on Rails метод поиска ActiveRecord - PullRequest
1 голос
/ 02 декабря 2009

У меня есть проект, который должен использовать функцию агрегирования для сортировки и возврата соответствующих записей из одной из моих активных моделей записей. Проблема в том, что, несмотря на то, что он используется в многочисленных руководствах по 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]
)

1 Ответ

4 голосов
/ 02 декабря 2009

Вы уверены, что ваша версия RoR актуальна? ActiveRecord обеспечивает поддержку: уже 2 года (я думаю), но, возможно, вы просто используете устаревшую версию?

Если вы не можете обновить свою среду rails, вы все равно можете использовать предложение HAVING, добавив его в конец оператора: group.

С наилучшими пожеланиями, Fabian

...