При выполнении сложных запросов, часто бывает необходимо выполнить предзагрузку данных об ассоциациях какой либо модели.
Обычно сложные запросы выполняються через find_by_sql
, например
Post.find_by_sql "SELECT p.name, c.author FROM posts p, comments c WHERE p.id = c.post_id"
> [#<Post:0x36bff9c @attributes={"title"=>"Ruby Meetup", "first_name"=>"Quentin"}>, ...]
Чтобы при вывзове ассоциаций объектов избежать проблемы с select(n+1)
запросами в Rails существует eager-loading, например: