例如:
@examples = @user.examples.mostrecent.paginate(page: params[:page])
最近"最近"定义为:
def self.mostrecent
self.order('created_at DESC')
end
所以基本上第一次调用数据库就是拉每个用户的例子,然后最重要的是先按照最近的顺序排序。看起来这应该是可行的,但出于某种原因,我无法让它发挥作用。
我使用的模型中没有已定义的订单范围,其他订单调用工作正常。通过检查development.log,我可以看到只有第一个用户拉动示例的数据库得到尊重。永远不会调用最新的订单。
是否有一种Rails方式可以在一行中完成所有操作?
答案 0 :(得分:0)
您可以使用范围,如:
scope :by_recent, lambda
{ |since_when| order("created_at") }