我按日期列排序Active Record关系,然后是外键id列,但第二个排序不会生效。
recs.order('date, parent_id')
recs.order('date asc, parent_id asc')
etc.
当第一列是日期时,预期的排序都不起作用。它只是不能在日期内订购第二列。
此命令按日期列排序,但不是由parent_id列排序,例如:
01/01/2015 ParentB
01/01/2015 ParentB
01/01/2015 ParentA
01/01/2015 ParentB
20/06/2015 ParentA
...
您看到parent_id没有为日期排序记录。使用Rails 4.2.3,Postgres 9.日期属性在迁移中定义为日期类型,因此不应该有时间部分。 订购应该是:
01/01/2015 ParentA
01/01/2015 ParentB
01/01/2015 ParentB
01/01/2015 ParentB
20/06/2015 ParentA
...
(假设ParentA显示为parent_id 1,ParentB显示为parent_id 2)
答案 0 :(得分:2)
在Rails 4中,你可以这样做
Model.order(column1: :asc, column2: :desc)
的更多信息
Client.order(orders_count: :asc, created_at: :desc)
# OR
Client.order(:orders_count, created_at: :desc)
# OR
Client.order("orders_count ASC, created_at DESC")
# OR
Client.order("orders_count ASC", "created_at DESC")
如果您想多次拨打电话,例如在不同的上下文中,新订单将附加前一个
Client.order("orders_count ASC").order("created_at DESC")
# SELECT * FROM clients ORDER BY orders_count ASC, created_at DESC