Comments 2
Методы eager нужны, чтобы избежать появления так называемых запросов N+1, и не стоит их использовать для подключения ассоциаций в where и order, для этого есть joins. Рекомендую гем bullet (https://github.com/flyerhzm/bullet), чтобы найти запросы в которых нужна eager-загрузка.
Плохо, когда появляются похожие штуки: 'posts'.'user_id' AS t1_r2, 'posts'.'desc' AS t1_r3, этим грешит includes особенно при сортировке через ассоциацию, даже если она подключена через joins (вроде в 4 исправили). И во многих случаях to_a не актуально.
Алсо, гем squeel (https://github.com/ernie/squeel) очень упрощает написание сложных запросов.
Плохо, когда появляются похожие штуки: 'posts'.'user_id' AS t1_r2, 'posts'.'desc' AS t1_r3, этим грешит includes особенно при сортировке через ассоциацию, даже если она подключена через joins (вроде в 4 исправили). И во многих случаях to_a не актуально.
Алсо, гем squeel (https://github.com/ernie/squeel) очень упрощает написание сложных запросов.
Sign up to leave a comment.
Различные методы загрузки ассоциаций в Ruby on Rails