データを昇順、降順に並び変える
class TestController < ApplicationController def index @persons = Person.all.order(age: :asc, name: :asc) end end
データの並べ替えは
の形式で記入します。
ascは昇順、descは降順となっており、,区切りで追加することで第一引数のフィールドの値が同じだったときの並べ替えを追加することができます。
上の例ではPersonモデルのデータを全件取得し、ageフィールドの昇順で並び替え、ageフィールドが同じだったときはその中でnameフィールドを昇順で並び変えています。
と記入しても同じ内容となります。
この書き方で降順にしたいときは
のように記入してください。
データ.order(フィールド: :ascもしくはdesc)
の形式で記入します。
ascは昇順、descは降順となっており、,区切りで追加することで第一引数のフィールドの値が同じだったときの並べ替えを追加することができます。
上の例ではPersonモデルのデータを全件取得し、ageフィールドの昇順で並び替え、ageフィールドが同じだったときはその中でnameフィールドを昇順で並び変えています。
Person.all.order('age, name')
と記入しても同じ内容となります。
この書き方で降順にしたいときは
Person.all.order('age desc, name desc')
のように記入してください。