はじめに 先日、アソシエーション関係がある2つのテーブルから、N+1問題を考慮しつつ、特定条件でデータを抽出して表示したいことがありました。 しかし、ActiveRecordの検索メソッド(includes、joins、eager_load、references等)も結構色々あって、 「どれを使えばいいんじゃーー!!」と噴火寸前になりましたので、復習と備忘録を兼ねて整理してみます。 言及しないこと 今回はシンプルに動きだけを確認することを目的としていますので、細かなところは記載しません。 本記事の最後に参考リンクを記載しますので、他の方の記事を参考にしてもらえばと思います。(´ε` ) 環境 ruby ruby 2.3.1p112 (2016-04-26 revision 54768) activerecord (5.0.1) sqlite3 (1.3.13) 前提条件 モデル(テーブル)
![ActiveRecordのincludes、joins、eager_load等の違いを調べてみた - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/4c35ad08ad0bdb8b8cf14cfb24b1be3ad689a68d/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9QWN0aXZlUmVjb3JkJUUzJTgxJUFFaW5jbHVkZXMlRTMlODAlODFqb2lucyVFMyU4MCU4MWVhZ2VyX2xvYWQlRTclQUQlODklRTMlODElQUUlRTklODElOTUlRTMlODElODQlRTMlODIlOTIlRTglQUElQkYlRTMlODElQjklRTMlODElQTYlRTMlODElQkYlRTMlODElOUYmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtY2xpcD1lbGxpcHNpcyZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWNmOGE3NTllYmUwYjI4YThjODc0ZGVmY2VkNWMwZGVl%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwdmlwdGFrZWNoYW4mdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWY2YzU3NWU4NTM2ZWIzNjk5NmFkZTA5OGZiODEyYzhk%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D19da097562552b4a7a9a728f93dfc5af)