ActiveRecordには、ソートに関するメソッドが3つあります。
- order
- reorder
- reverse_order
order
指定した文字列、もしくはシンボルでソートします。
Sample.order(:created_at) #=> ORDER BY created_at Sample.order("created_at") #=> ORDER BY created_at Sample.order("created_at ASC, name DESC") #=> ORDER BY created_at ASC, name DESC
reorder
デフォルトスコープで指定したソート順を上書きし、reorderで指定したソート条件を適用します。
class Post < ActiveRecord::Base .. .. has_many :comments, :order => 'posted_at DESC' end Post.find(10).comments.reorder('name')
reverse_order
指定したソートの昇順・降順を入れ替えてソートします。 (以前こっちに書きましたが・・)
Sample.order(:created_at).reverse_order #=> ORDER BY created_at DESC別段これは!ということは書いていませんが、reorderの存在を最近知ったので、 ちょっとまとめてみました。
そういえば、第4版が出ていましたね。
2013/11/01 追記。
Rails4におけるソートの新機能について、Rails4からActiveRecordのorderにハッシュを渡せるようなった。に書きました。
0 件のコメント:
コメントを投稿