【问题标题】:User-changeable pagination preferably using will_paginate gem用户可更改的分页最好使用 will_paginate gem
【发布时间】:2016-03-05 04:55:11
【问题描述】:

我正在使用 will_paginate gem,并试图弄清楚如何制作它,以便浏览网站的用户可以使用列表更改他/她每页想要多少个项目,例如右侧的列表图片

(随机谷歌图片搜索)。

我也是 Rails 的新手,所以如果您能告诉我每个代码的去向,我将不胜感激。感谢您的帮助。

【问题讨论】:

标签: ruby-on-rails pagination will-paginate


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2012-11-17
      • 1970-01-01
      • 1970-01-01
      • 2011-07-20
      • 1970-01-01
      • 2014-06-24
      • 2012-07-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多