Rails でクエリの結果を任意の順序にしたい時に使う ActiveRecord::QueryMethods#in_order_of メソッド
20240401時点
APIドキュメント読んだログ
https://railsdoc.com/page/in_order_of
モデル.in_order_of(カラム, 値) で使う
Rails7系以降で追加されたメソッド
例を見るとORDER BY FIELD句で指定している
User.in_order_of(:id, 1, 5, 3)
# SELECT "users".* FROM "users" ORDER BY FIELD("users"."id", 1, 5, 3)
6系で急遽使いたい場合はこのクエリを元に作ればよさそう(手元では未実施)
https://github.com/rails/rails/blob/main/activerecord/lib/active_record/relation/query_methods.rb#L636-L656
調べた時に読んだ記事
https://techracho.bpsinc.jp/hachi8833/2021_10_28/113117
ActiveRecord の in_order_of と同様に振る舞うEnumerable#in_order_ofメソッドも Rails7 で入ってる
https://blog.saeloun.com/2021/10/05/rails-7-activerecord-adds-in_order_of-method/
Rails6〜7で追加された便利メソッド12選 https://zenn.dev/mybest_dev/articles/973c927f3931ce