Rails

Railsで他のテーブルのカラムをソートする方法

More than 1 year has passed since last update.

はじめに

Railsで取得した値を並び替えする際には、orderメソッドを使うのが一般的だと思います。
ただ、他のテーブルから取得した値をソートする際にちょっとハマったのでメモを残しました。

1つのテーブルでソートする場合

リファレンスにもありますがこちらは非常にわかりやすいです。

モデル.order("カラム名 DESC")

別のテーブルのカラムをソートする場合

例えば、projectモデルのdateカラムをソートする場合
結論からいうと下記のように書けばうまく行きました。

モデル.includes(:project).order("projects.date DESC")

ポイントはorderの中では複数形で書くといいそうです。

参考

Belongs toしているテーブルのカラムでソートする