私はまだRuby on Railsに慣れていないので、何時間もこれを理解しようとしましたが、できませんでした。私のスコープが問題の原因である可能性があると思います。これを修正する方法を見つけるのを手伝ってもらえますか?
sitecity.rb と event.rb の 2 つのモデルがあります。イベントは sitecity に属しており、sitecity には多くのイベントがあります。
サイトシティのインデックス ページで、少なくとも 1 つのイベントがあるサイトシティのみを表示したいと考えています。したがって、sitecities.rb にスコープを作成しました。
scope :has_event, ->(n = 1) { includes(:events).select { |w| w.events.size >= n } }
私の sitecities インデックス ファイルには次のものが含まれます。
<%= 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'