2016-03-05 110 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 
) 
相關問題