Я хочу отсортировать по двум столбцам, один - DateTime ( updated_at
), а другой - десятичное число (цена)
Я хотел бы иметь возможность сортировать сначала по updated_at, а затем, если в один и тот же день встречается несколько элементов, отсортировать по цене.
Предполагая, что вы используете MySQL,
Model.all(:order => 'DATE(updated_at), price')
Обратите внимание на отличие от других ответов. Столбец updated_at
будет полной временной меткой, поэтому, если вы хотите отсортировать на основе дня, он был обновлен, вам нужно использовать функцию, чтобы получить только часть даты из временной метки. . В MySQL это DATE()
.
Thing.find(:all, :order => "updated_at desc, price asc")
сделает свое дело.
Thing.all.order("updated_at DESC, price ASC")
это путь к Rails 3. (Спасибо @cpursley)