我正在尝试使用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"`
答案 0 :(得分:17)
确保在安装'will_paginate' gem
后重新启动服务器。
这是我案中的愚蠢问题。
答案 1 :(得分:16)
will_paginate不会那样工作。 paginate
是Location
类的一种方法:
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
答案 3 :(得分:0)
如果有人来这里寻找答案,为什么<%= will_paginate%>无法正常工作或给出错误的参数错误。请执行一次
1-替换您的gem文件将使用此 gem“ will_paginate”,“〜> 3.1.7”
对宝石进行分页2-然后在控制台中运行“捆绑安装”并重新启动服务器。
我希望这会对某人有所帮助。