2016-03-05 113 views
0

我正在使用will_paginate gem,并试图弄清楚如何使浏览网站的用户可以使用列表更改每个页面上他/她想要的项目数量,如在这张图片右侧的列表https://help.gumtree.com.au/documents/1353285762.jpg用户可更改分页最好使用will_paginate gem

(随机谷歌图片搜索)。

我也是新来的铁路,所以我非常感激,如果你能给我一个想法,每个代码会去。谢谢你的帮助。

+0

您可以用'jQuery的数据表,rails'宝石的分页。欲了解更多信息,请访问https://github.com/rweng/jquery-datatables-rails。 –

回答

0
中的Gemfile

gem 'will_paginate' 

在您的控制器要分页

class SomeController < ApplicationController 
    def index 
    @somethings = Model.all.paginate(page: params[:page], per_page: params[:per_page]) 
    end 
end 

在你看来

<%= select_tag :per_page, options_for_select([5,10,20,50],params[:per_page].to_i), 
    :onchange => "if(this.value){window.location='?per_page='+this.value;}" %> 
0

随着will_paginate您只需使用per_page选项:

@posts = Post.paginate(
    page: params[:page], 
    per_page: params[:per_page] 
) 

但是,在接受用户输入并将其传递给像这样的SQL查询时,应该保持警惕。在这种情况下,谨慎的做法是将输入转换为整数:

irb(main):008:0> nil.to_i 
=> 0 
irb(main):009:0> "gobeligook".to_i 
=> 0 

per_page = params[:per_page].to_i.zero? ? params[:per_page].to_i : 30 
@posts = Post.paginate(
    page: params[:page], 
    per_page: per_page 
) 
相关问题