Pull to refresh

Comments 2

При использовании joins, вместо того, чтобы руками прописывать distinct в запросе, можно вызвать uniq:
User.joins(:posts).uniq
Методы 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) очень упрощает написание сложных запросов.
Sign up to leave a comment.

Articles