对于模糊的标题
抱歉我有一个查询,其中列出了具有最高rating_number
的5个用户,这是用户表中的索引列。
当我根据他们的rating_number
获取这些用户的列表然后调用.limit(5)
方法时,它将只占用5个用户,然后在这五个用户按照rating_number的顺序排列,即使这些用户不是rating_number最高的用户。
这是当前的范围,但我知道我可以提高此查询的性能,所以如果您知道,请告诉我如何知道,因为我在一个页面上有一些这样的查询,而且它的性能非常糟糕。
在我的用户模型中
scope :top_five_users, -> do
results = User.all
results.order('rating_number DESC')
results.limit(5)
end
谢谢!
答案 0 :(得分:2)
您不需要使用.all
User.order('rating_number DESC')
以上足以获得评分最高的用户
限制5位用户
scope :top_five_users, -> do
User.order('rating_number DESC').limit(5)
end