【发布时间】:2012-08-27 14:49:27
【问题描述】:
是否可以硬限制来自activerecord的页面结果数?
我不知道限制,但使用无限滚动 jquery 插件它只限制每页的记录数 .limit(10) = 10 每页。例如,我需要限制记录的总数,以便某个用户获得的结果不能超过前 100 个。
这可能吗?怎么做?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 activerecord limit
是否可以硬限制来自activerecord的页面结果数?
我不知道限制,但使用无限滚动 jquery 插件它只限制每页的记录数 .limit(10) = 10 每页。例如,我需要限制记录的总数,以便某个用户获得的结果不能超过前 100 个。
这可能吗?怎么做?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 activerecord limit
你不能从 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
【讨论】:
我知道这个问题很老,但我最终来到这里并认为我在其他地方找到的答案可能会有所帮助。从版本 4 开始,ActiveRecord 上有一个限制功能 -
User.limit(10) # generated SQL has 'LIMIT 10'
【讨论】: