限制活动记录查询返回的结果总数?

Rub*_*tic 2 activerecord ruby-on-rails limit ruby-on-rails-3

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

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

这可能吗?如何做到?

spa*_*kus 6

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

User.limit(10) # generated SQL has 'LIMIT 10'
Run Code Online (Sandbox Code Playgroud)

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


Osc*_*Ben 5

您不能从 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
Run Code Online (Sandbox Code Playgroud)