RubyonRails:如何使用ActiveRecord对两列进行排序?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (17)

我想按两列排序,一个是DateTime(updated_at),另一个是Decimal(Price)

我希望能够先通过updated_at进行排序,然后,如果在同一天发生多个项目,则按Price排序。

提问于
用户回答回答于

假设你使用MySQL,

Model.all(:order => 'DATE(updated_at), price')

updated_at列是一个完整的时间戳,因此如果想根据更新日期进行排序,则需要使用函数从时间戳中获取日期部分。在MySQL中,就是这样DATE()

用户回答回答于

在Rails 4中,可以执行以下:

Model.order(foo: :asc, bar: :desc)

foobar是数据库中的列。

扫码关注云+社区