2

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

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

这可能吗?怎么做?

4

2 回答 2

4

你不能从 Active Record 中获取,除非你设置了一个类似的条件(例如:id)。但是,您可以通过查看 page 和 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
于 2012-08-27T14:54:45.483 回答
2

我知道这个问题很老,但我最终来到这里,并认为我在其他地方找到的答案可能会有所帮助。从版本 4 开始,ActiveRecord 上有一个限制功能 -

User.limit(10) # generated SQL has 'LIMIT 10'

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

于 2018-04-25T20:49:52.193 回答