こんにちは。DIGGLEのエンジニアのhondaです。 Ruby on Rails Advent Calendar 2022の12日目の記事です。 Advent Calendar初参加です。 はじめに Railsで開発している方にはN+1問題というのはおなじみだと思います。(説明は割愛します) そのためincludesやeager_load, joinsなどのN+1問題を起こさないためのメソッドに関する理解は必須だと思います。 自分もそれぞれの意味を把握して使い分ける程度にはわかっているつもりだったのですが、その理解が甘かったのでソートした時に意図した結果を取得できていませんでした。 今回はそのときの失敗談と解決した方法をお話します。 状況設定 今回は説明のために簡略化した↓のテーブル定義を使います。 データベースはpostgresqlを使用しています。 ER 要件はitemsをユーザーに