はじめに
初心者なりにまとめたものになりますので、間違いにお気づきの方は、お手数ですが、コメント頂けると幸いです。
内容は、Orderメソッドのまとめになります。
目次
- orderメソッド の雛形
- orderメソッド 並び順のオプション
- orderメソッドとallメソッド
orderメソッド の雛形
変数 = モデル名.order("カラム名")
変数:お好みの変数を定義する
モデル名:並び替えたいテーブルを管理するモデルの名前
カラム名:並び替えさせたいカラムの名前
例.
テーブル名: mail
カラム名:id, title, content, user_id, created_at, update_at
mailテーブルのuser_idで並び替えさせたい場合は、以下となります。
hoge = Mail.order("user_id")
orderメソッド 並び順のオプション
hoge = Mail.order("user_id ASC")
hoge = Mail.order("user_id DESC")
- user_idの後ろにASC, DESCが記述されていますが、以下の意味になります。
-ASC:昇順の意味のオプション(ascendの頭文字ASC)
-DESC:降順の意味のオプション(descentの頭文字DESC)
また、以下の表記は同じ意味を持ちます。
hoge = Mail.order("user_id DESC")
hoge = Mail.order(user_id: :DESC)
orderメソッドとallメソッド
orderメソッドは、モデル内のデータを取得するallメソッドと併記することができる。
N+1の問題を解決するためにincludesを記述することもできる。
hoge = Mail.all.order(user_id: :DESC)
hoge = Mail.includes(:mail).order(user_id: :ASC)
おわりに
私は、allメソッドとorderメソッドを別々に書いていて効かない事があったので、調べてまとめてみました。
- 偉大な参考文献
-orderメソッド
https://qiita.com/iverson3kobe0824/items/91f47eb5ef529e8231ac
-Railsドキュメント
https://railsdoc.com/page/model_order