Web制作メモ -トップへ-

Railsのorderメソッドのメモ

Ruby2016.03.25 21:10

並び替えに使用するカラムを複数指定できる。

@models = Holiday.all.order("year desc, month desc")

mysqlのCASTを使用できる。

@models = Holiday.all.order("CAST(month AS DECIMAL) desc")

CASTはデータベースの型がstringの場合に並び替えると桁数が大きくても最初の文字によって前に来てしまう(例えば10が7や8より前に来てしまう)場合に使う。

ただし、データベースの型が元々integerならこのような問題は起きないので、データベース側を修正するという方法もある。