我对 ruby on rails 还是很陌生,我已经尝试了几个小时来解决这个问题,但无法解决。我认为我的范围可能是问题的根源。你能帮我看看如何解决这个问题吗?
我有两个模型,sitecity.rb 和 event.rb。一个事件属于_一个站点城市和一个站点城市有_许多事件。
在我的站点索引页面上,我只想显示至少有一个事件的站点。因此,我在 sitecities.rb 中创建了一个范围:
scope :has_event, ->(n = 1) { includes(:events).select { |w| w.events.size >= n } }
我的站点索引文件包含:
<%= will_paginate @sitecities.has_event %><br />
我的站点控制器索引操作:
def index
@sitecities = Sitecity.order("name asc").page(params[:page]).per_page(20)
这是我得到的错误:
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'