Сопоставить пользовательский SQL-запрос Rails с моделью ActiveRecord - PullRequest
2 голосов
/ 24 июня 2011

Я настраиваю пользовательский запрос, который использует диапазон операторов OR в сочетании с операторами BETWEEN и окончательным идентификатором GROUP BY HAVING COUNT (*)> = # {допуск}. Не говоря уже о ВНУТРЕННИХ и ЛЕВЫХ операциях соединения.

Я бы предположил, что не удастся настроить использование активной записи. Поэтому я использовал команду Model.connection.select_all () для запуска запроса. Это работает, но как мне не отобразить все строки в этой конкретной модели?

1 Ответ

9 голосов
/ 24 июня 2011

Rails довольно мощный, особенно если вы используете Rails 3 & ARel. Поэтому я не удивлюсь, если вы на самом деле сможете написать свой запрос, используя рельсы.

Тем не менее, всегда будет время, когда необходимо написать необработанный SQL.

Для этого вместо Model.connection используйте Model.find_by_sql(QUERY_STRING).

Таким образом, запрос будет автоматически проанализирован для вас, просто убедитесь, что вы только select "model.*"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...