取得した値を並び替えるメソッドになります。
#orderとは
create_table "posts", force: :cascade do |t|
t.string "content"
t.datetime "created_at", null: false
end
通常、上記のようなPostモデル
だとデータベースに格納される値は昇順になります。
:id => 1
:created_at =>3.days.ago
:id =>2
:created_at =>1.days.ago
:id =>3
:created_at =>Time.zone.now
ただし、実際のアプリケーションであれば投稿を行う際に時間などは降順で表示されます。
そこでorder
を使用します。
以下はorder
を使用したサンプルになります。
class Post < ActiveRecord::Base
default_scope -> { order(created_at: :desc) }
end
default_scopeは読んだままデフォルトのスコープを定義するメソッドです。ここで定義されたスコープは全てのクエリに適用されます。
※ クエリ:データベースさんに対する命令文のこと。
スコープ:影響範囲
created_atの後の:descはdescendingの略で降順という意味です。