【问题标题】:limit the total number of results a activerecord query returns?限制 activerecord 查询返回的结果总数?
【发布时间】:2012-08-27 14:49:27
【问题描述】:

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

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

这可能吗?怎么做?

【问题讨论】:

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


    【解决方案1】:

    你不能从 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
    

    【讨论】:

    • 还没有考虑过,感谢您指出这一点
    【解决方案2】:

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

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

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

    【讨论】:

    • 工作,成就我的一天
    猜你喜欢
    • 1970-01-01
    • 2013-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多