Rails:您可以在同一行中强制执行多个排序顺序吗?

时间:2015-09-27 09:23:30

标签: ruby-on-rails ruby

例如:

@examples = @user.examples.mostrecent.paginate(page: params[:page])

最近"最近"定义为:

def self.mostrecent
  self.order('created_at DESC')
end

所以基本上第一次调用数据库就是拉每个用户的例子,然后最重要的是先按照最近的顺序排序。看起来这应该是可行的,但出于某种原因,我无法让它发挥作用。

我使用的模型中没有已定义的订单范围,其他订单调用工作正常。通过检查development.log,我可以看到只有第一个用户拉动示例的数据库得到尊重。永远不会调用最新的订单。

是否有一种Rails方式可以在一行中完成所有操作?

1 个答案:

答案 0 :(得分:0)

您可以使用范围,如:

scope :by_recent, lambda 
  { |since_when| order("created_at") }