以前、[rails]ActiveRecordのソートという記事を書いた。あれからおよそ1年半の間にRails4がリリースされ、まさにこのソートの機能も改良されたっぽい。
order(*args)
ActiveRecordのソート処理は、ActiveRecord::QueryMethods.orderで実装されている。これまでは、
User.order('name') => SELECT "users".* FROM "users" ORDER BY name User.order('name DESC') => SELECT "users".* FROM "users" ORDER BY name DESC User.order('name DESC, email') => SELECT "users".* FROM "users" ORDER BY name DESC, email User.order(:name) => SELECT "users".* FROM "users" ORDER BY "users"."name" ASCしかなかったのに対し、Rails4から、
User.order(email: :desc) => SELECT "users".* FROM "users" ORDER BY "users"."email" DESC User.order(:name, email: :desc) => SELECT "users".* FROM "users" ORDER BY "users"."name" ASC, "users"."email" DESCのように、ハッシュでソート条件を指定できるようになった。
おかけで、降順もスマートに指定できるね。
0 件のコメント:
コメントを投稿