Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 站点城市中的命名错误#使用时的索引将与范围一起分页_Ruby On Rails_Scope_Will Paginate - Fatal编程技术网

Ruby on rails 站点城市中的命名错误#使用时的索引将与范围一起分页

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

我对RubyonRails还是一个新手,我已经花了几个小时试图解决这个问题,但是没有。我认为我的范围可能是问题的根源。你能帮我找出如何解决这个问题吗

我有两个模型,sitecity.rb和event.rb。一个事件属于一个站点城市,而一个站点城市有许多事件

在我的sitecities索引页面上,我只想显示至少有一个事件的sitecities。因此,我在sitecities.rb中创建了一个作用域:

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