Edited at

Railsで複数項目での order by を簡単に記述する

複数項目を条件にしたソートをActiveRecordで記述する場合に毎回検索して調べていましたが非常に簡単な方法がありました。

order を項目の数だけ記述すればいいのです。

User.order(:group).order(:name)

降順でソートする場合は以下のように書きます。

User.order(:group).order(birth: :desc)

Ruby on Rails Guides に記載されているのに何故か広まっていませんね。

Active Record クエリインターフェイス - 3 並び順