'Неизвестный ключ (ы):наличие' В Ruby on Rails метода поиска ActiveRecord
-
11-09-2019 - |
Вопрос
У меня есть проект, которому необходимо использовать функцию aggrate для сортировки и возврата соответствующих записей из одной из моих активных моделей записей.Проблема в том, что, несмотря на то, что я видел его в многочисленных руководствах по 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]
)
Решение
Вы уверены, что ваша версия RoR актуальна?ActiveRecord обеспечивает поддержку для: уже (я думаю) 2 лет, но, вероятно, вы просто используете устаревшую версию?
Если вы не можете обновить свою среду rails, вы все равно можете использовать предложение HAVING, добавив его в конец вашего оператора :group .
Наилучшие пожелания, Фабиан