簡體   English   中英

用戶可更改的分頁,最好使用will_paginate gem

[英]User-changeable pagination preferably using will_paginate gem

我正在使用will_paginate gem,並試圖弄清楚如何制作它,以便瀏覽該網站的用戶可以使用列表來更改他/她每頁想要多少個項目,例如這張圖片右側的列表。 https://help.gumtree.com.au/documents/1353285762.jpg

(隨機的Google圖片搜索)。

我也是Rails的新手,所以如果您能給我一個關於每個代碼去哪里的想法,我將不勝感激。 謝謝你的幫助。

在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;}" %>

使用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
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM