未定义的方法`paginate'

时间:2013-06-14 09:49:57

标签: ruby-on-rails will-paginate

我正在尝试使用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中添加了需要部分:

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

这是我environment.rb

的结尾
require "will_paginate"`

4 个答案:

答案 0 :(得分:17)

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

这是我案中的愚蠢问题。

答案 1 :(得分:16)

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 :(得分:3)

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

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 :(得分:0)

如果有人来这里寻找答案,为什么<%= will_paginate%>无法正常工作或给出错误的参数错误。请执行一次

1-替换您的gem文件将使用此 gem“ will_paginate”,“〜> 3.1.7”

对宝石进行分页

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

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