限制activerecord查询返回的结果总数?

时间:2012-08-27 14:49:28

标签: ruby-on-rails ruby-on-rails-3 activerecord limit

是否可以严格限制来自activerecord的页面结果数量?

我知道限制,但使用无限滚动jquery插件,它只限制每页的记录数.limit(10)=每页10。我需要限制记录总数,以便某个用户不能获得超过前100个结果的例子。

这可能吗?怎么做?

2 个答案:

答案 0 :(得分:2)

你不能从Active Record中获取,除非你提出一个给你类似的条件(例如:id)。但是,您可以通过查看页面和per_page参数来控制查询。

page = params[:page] || 0
per_page = 20

if page * per_page > 100
  @users = [] # You may have to make this a collection depending on what pagination gem you use
else
  @users = User.page(page).per_page(per_page)
end

答案 1 :(得分:0)

我知道这个问题已经过时但我最终在这里认为我在其他地方找到的答案可能有所帮助。从版本4到

,ActiveRecord上有一个限制功能
User.limit(10) # generated SQL has 'LIMIT 10'

https://apidock.com/rails/ActiveRecord/QueryMethods/limit