8
6

More than 3 years have passed since last update.

【orderメソッド】Railsで、データの並び順を設定する

Posted at

参考対象者

  • Railsで、アプリ作ってるけど、あるデータの並び替えをしたいなと思っている方

特定の状況下で、データを並び替えたいとき

基本形

Model.order(Column: :DESC)
Model.order("Column DESC")

デフォルトでは、ASC(昇順)になっているので、DESC(降順)にすることができる

実際に、並び替えしたデータ群を取得してみる

feed_controller.rb
#データベース上の全てのデータを取得
feeds = Feed.order(id: :DESC)

#現在ログイン中ユーザーの全てのデータを取得
feeds = current_user.feeds.order(id: :DESC)

今回は、Feedモデルというデータを取得してみた。
上は、データベース上の全てのデータを取得し、
下は、現在ログイン中ユーザーの全てのデータを取得している。

こうすることで、降順になったデータ群を取得することができる。

デフォルト設定を変更して、並び替えしたいとき

モデルファイルに並び順を設定する

models/feed.rb
default_scope -> { order(created_at: :desc) }

今回も、Feedモデルというデータの並び替え設定をした。
この記法は、ラムダ関数というもので、特殊である。

こうすることで、作成した日時(created_at)の降順で、並び替えするようにデフォルト設定を行うことができる。

8
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6