我有一个这样的产品表
id name display_order
------------------------
1 A 2
2 B 4
3 C 4
4 D 1
通过display_order desc订购后,结果如下:
Product.order(display_order: :desc)
id name display_order
------------------------
3 C 4
2 B 4
1 A 2
4 D 1
现在,我想保持此顺序,但是如果两个或多个产品具有相同的display_order,我希望按照如下所示的ID升序对它们进行排序:
id name display_order
------------------------
2 B 4
3 C 4
1 A 2
4 D 1
您知道任何rails或ruby语法或算法都可以帮助我实现此结果吗?预先感谢!
答案 0 :(得分:0)
您可以使用SQL轻松做到这一点:
Product.order(display_order: :desc, id: :asc)
它被翻译成类似的东西
select products.* from products order by products.display_order desc, products.id asc