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/