ruby-on-rails - will_paginate 有没有办法将 per_page 设置为 'all'

标签 ruby-on-rails

Rails 2.3.5/Will_Paginate Gem 2.3.15

我有一个页面部分,用户可以在其中选择每页显示多少项目(使用“全部”选项)。我不喜欢在那里有“全部”,但列表中的每个项目都有一个复选框,以便可以对列出的项目执行批量操作(如果项目被分解,用户无法选择查询将返回的所有项目成页面)。

我环顾四周还没有找到答案,但是有没有办法将 :per_page 选项设置为“全部”?我暂时只是输入了一个巨型号码(1000000)作为解决方法。这是唯一的方法吗?

我考虑过用 find_by_sql 替换 paginate_by_sql 条件,但是在 View 中我必须添加逻辑以不写“<%= will_paginate @items%>”

    if cookies[:items_per_page]
      if cookies[:items_per_page] == 'ALL'
        @items =  Item.paginate_by_sql(sql, :page => params[:page], :per_page => 1000000)
      elsif %w(10 20 30 40 50 75 100).any? {|str| cookies[:items_per_page].include? str}
        @items =  Item.paginate_by_sql(sql, :page => params[:page], :per_page => cookies[:items_per_page].to_i)
      else #cookie doesn't contain a valid choice, default to '10'
        @items =  Item.paginate_by_sql(sql, :page => params[:page], :per_page => 10)
      end
    else #cookie doesn't exist, default to '10'
      @items =  Item.paginate_by_sql(sql, :page => params[:page], :per_page => 10)
    end

最佳答案

Item.paginate_by_sql(sql, :page => params[:page], :per_page => Item.count)

关于ruby-on-rails - will_paginate 有没有办法将 per_page 设置为 'all',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5118031/

相关文章:

ruby-on-rails - Ruby on rails 中的捆绑错误

ruby-on-rails - find_by_id(params [首先是:subject_id]) vs where(:id => params[:subject_id]).

ruby-on-rails - 哪个 apache 工作人员与乘客一起使用以及如何使用?

ruby-on-rails - 基于 where 谓词从 Rails API 中删除的 Curl 命令?

mysql - 在 rails 中为 MySQL 定义 varchar 的长度

html - float 属性是否会影响复选框的功能?

ruby-on-rails - 如何使用 Mongoid 和 Rails 对结果进行分组?

ruby-on-rails - 在Ruby on Rails中向用户模型添加属性的最佳方法

ruby-on-rails - 一种计算Rails中两个日期之间的年数的优雅方法?

ruby-on-rails - 使用 active_record_store rails 修复了 ffmpeg