Ruby on rails 站点城市中的命名错误#使用时的索引将与范围一起分页
我对RubyonRails还是一个新手,我已经花了几个小时试图解决这个问题,但是没有。我认为我的范围可能是问题的根源。你能帮我找出如何解决这个问题吗 我有两个模型,sitecity.rb和event.rb。一个事件属于一个站点城市,而一个站点城市有许多事件 在我的sitecities索引页面上,我只想显示至少有一个事件的sitecities。因此,我在sitecities.rb中创建了一个作用域:Ruby on rails 站点城市中的命名错误#使用时的索引将与范围一起分页,ruby-on-rails,scope,will-paginate,Ruby On Rails,Scope,Will Paginate,我对RubyonRails还是一个新手,我已经花了几个小时试图解决这个问题,但是没有。我认为我的范围可能是问题的根源。你能帮我找出如何解决这个问题吗 我有两个模型,sitecity.rb和event.rb。一个事件属于一个站点城市,而一个站点城市有许多事件 在我的sitecities索引页面上,我只想显示至少有一个事件的sitecities。因此,我在sitecities.rb中创建了一个作用域: scope :has_event, ->(n = 1) { includes(:events
scope :has_event, ->(n = 1) { includes(:events).select { |w| w.events.size >= n } }
我的sitecities索引文件包含:
<%= will_paginate @sitecities.has_event %><br />
这是我得到的错误:
ActionView::Template::Error (undefined method `total_pages' for #<Array:0x00000100d26008>):
21:
22: <br />
23:
24: <%= will_paginate @sitecities.germany.has_event %><br />
25:
26:
27: <h2> <%=t :cities_austria %> </h2>
app/views/sitecities/index.html.erb:24:in `_app_views_sitecities_index_html_erb___1333285971746927117_2155045900'
app/controllers/sitecities_controller.rb:11:in `index'
ActionView::Template::Error(未定义的方法#的“total_pages”):
21:
22:
23:
24:
25:
26:
27:
app/views/sitecity/index.html.erb:24:in`_app_views_sitecity_index_html_erb_13332859971746927117_215045900'
app/controllers/sitecities\u controller.rb:11:in'index'
尝试添加
require 'will_paginate/array'
在导致问题的代码之前,或在应用程序控制器中
编辑
您还可以尝试将控制器操作更改为:
def index
@sitecities = Sitecity.order("name asc").paginate(:page => params[:page],
:per_page => 20)
end
请确保您拥有最新版本的will_paginate谢谢您的建议,但我仍然收到相同的错误。我已更新为will_paginate(3.0.5)。我还按照建议更改了控制器,但仍然得到相同的错误。
def index
@sitecities = Sitecity.order("name asc").paginate(:page => params[:page],
:per_page => 20)
end