【问题标题】:Undefined method `paginate'未定义的方法“分页”
【发布时间】:2013-06-10 22:32:34
【问题描述】:

我正在尝试使用 will_paginate gem,但是出了点问题。我遇到了undefined method `paginate' 错误。我阅读了很多问题并尝试了很多事情。 这就是我所拥有的:

这是我的 LocationsController.rb:

def index
  @locations = Location.all    
  respond_to do |format|
    @locations = @locations.paginate(:page => params[:page], :per_page => 10) 
    format.html  #index.html.erb
    format.json { render json: @locations }
  end 
end

这是我的index.html.erb 中的 will_paginate 行:

<%= will_paginate @locations %>

这是错误:

undefined method `paginate' for #<Class:0xaa2e48c>

我还在 Gemfile 中添加了 require 部分:

gem "will_paginate", "~> 3.0.4", :require => nil

这是在我的environment.rb 的末尾:

require "will_paginate"`

【问题讨论】:

    标签: ruby-on-rails will-paginate


    【解决方案1】:

    will_paginate 不能这样工作。 paginateLocation 类的一个方法:

    def index
      @locations = Location.paginate(page: params[:page], per_page: 10) 
      respond_to do |format|
        format.html
        format.json { render json: @locations }
      end 
    end
    

    此外,要使用 will_paginate,您只需在 Gemfile 中添加以下行,无需修改 environment.rb

    gem "will_paginate", "~> 3.0.4" 
    

    【讨论】:

      【解决方案2】:

      您尝试对数组进行分页。试试这个:

      def index
         @locations = Location.paginate(:page => params[:page], :per_page => 10)   
      
           respond_to do |format|
            format.html  #index.html.erb
            format.json { render json: @locations }
          end 
        end
      

      如果要对数组进行分页,请参阅Paginating an Array in Ruby with will_paginate

      【讨论】:

        【解决方案3】:

        确保在安装'will_paginate' gem 后重新启动服务器。

        这对我来说是个愚蠢的问题。

        【讨论】:

        • 讽刺的是;在过去的几年里,我已经三次使用这个答案作为我的解决方案。不管我做什么;我永远不记得安装 gem 后重新启动 Rails S!
        • 但我确定一定有办法在安装任何 gem 后不继续重启服务器?
        • 添加到第一条评论,在过去的 2 个月内,我也两次使用这个答案作为我的解决方案。
        【解决方案4】:

        如果有人来这里寻找答案,为什么 不起作用或给出错误参数的错误。请这样做一次

        1- 替换您的 gem 文件会将 gem 分页为 gem "will_paginate", "~> 3.1.7"

        2- 然后在您的控制台中运行“捆绑安装”并重新启动服务器。

        我希望这会对某人有所帮助。

        【讨论】:

        • 由于 will_paginate gem 的版本,我面临同样的问题。这就是为什么我决定把它放在这篇文章中
        猜你喜欢
        • 2013-10-12
        • 1970-01-01
        • 1970-01-01
        • 2015-11-15
        • 1970-01-01
        • 1970-01-01
        • 2012-06-27
        • 1970-01-01
        • 2018-01-05
        相关资源
        最近更新 更多