У меня есть довольно сложный sql-запрос, который, я уверен, я не могу выполнить с AREL (Rails 3.0.10)
Проверьте ссылку, но она имеет несколько объединений и предложение where exists
, и я уверен, что это слишком сложно для AREL.
Моя проблема заключается в том, что до того, как этот запрос был настолько сложным, с AREL я мог бы использовать includes
, чтобы добавить другие модели, которые мне нужны, чтобы избежать n + 1 проблем. Теперь, когда я использую find_by_sql, includes
не работает. Я все еще хочу иметь возможность извлекать эти записи и присоединять их к экземплярам модели, как это делает includes
, но я не совсем уверен, как этого добиться.
Может ли кто-нибудь указать мне в правильном направлении?
Я еще не пробовал присоединиться к ним в том же запросе. Я просто не уверен, как они будут сопоставлены с объектами (т.е. Если ActiveRecord правильно сопоставляет их с соответствующим классом)
Я знаю, что при использовании includes
ActiveRecord фактически выполняет второй запрос, затем каким-то образом привязывает эти строки к соответствующим экземплярам из исходного запроса. Может ли кто-нибудь научить меня, как я могу это сделать? Или мне нужно присоединиться к одному и тому же запросу?