Rails 2.3.5 / Will_Paginate Gem 2.3.15
我有一个页面部分,用户可以选择每页显示多少项目(使用“全部”选项)。我不喜欢在那里拥有'all'但是列表中的每个项目都有一个复选框,以便可以对列出的项目执行批量操作(如果项目被分解,用户无法选择查询将返回的所有项目到页面)。
我没有找到答案,但有没有办法将:per_page选项设置为'all'?我暂时只是输入一个巨号(1000000)作为解决方法。这是唯一的方法吗?
我想过用find_by_sql替换paginate_by_sql条件,但是在视图中我必须添加逻辑以不写“<%= 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
答案 0 :(得分:6)
Item.paginate_by_sql(sql, :page => params[:page], :per_page => Item.count)