rails是否有办法在数据库查询级别进行复杂排序?
IE /
Posts.order(up / down).all
?
在数据库级别(在postgres中)实现此功能的最佳方法是什么,而不必使用sort对ruby中的结果进行排序(这将减慢分页等)。
答案 0 :(得分:4)
如果您使用精彩的meta_where
宝石,您也可以执行类似
Post.order(:create_at.asc)
要按两列或更多列的功能排序,您可以执行类似
的操作Post.select("*, (up / down) as ratio").order("ratio asc")
您将拥有自己想要的内容,而且该数组中的每个Post
对象都将使用ratio
方法来了解确切的值。
答案 1 :(得分:1)
Post.order("created_at DESC").all
Post.order("title ASC").all
有关详细信息,请参阅here。
答案 2 :(得分:0)
Post.select("*, (up / greatest(down, 1)) as ratio").order("ratio asc")