3

カミナリに問題があります。カスタムの「unRestful」URL を使用すると、結果をページ分割できないようです。

resources :provinces, :path => '', :only => [ :show ] do
  resources :sports, :only => [ :show ] do
    match ':page', :controller => 'facilities', :action => 'index'
  end
end

したがって、/:foo/sports/:bar はコントローラーを指し、/:foo/sports/:bar/1 は別の 1 を指します。これは嫌な URL スキームですが、仕様を変更する力が今のところありません。

Kaminari なしでページを呼び出すと、すべてが期待どおりに機能し、最初のページが表示されます。カミナリを次のように使用する場合:

<%= paginate @facilities, :params => { :controller => 'facilities', :action => 'index' } %>

Rails は、次の URL でルーティング エラーを表示します。

http://lvh.me:8080/milano/sports/palestra/1

No route matches {:controller=>"facilities", :province_id=>"milano", :sport_id=>"palestra", :page=>nil}

正直なところ、何をすべきかわかりません。すべてが正しいように思えますが、私のケースに関するカミナリ グループやその他のドキュメントを見つけることができませんでした。

問題は、paginate の呼び出しによって、ページが nil に設定された URL が生成されることです...

なにか提案を?

レールを使う (3.2.8) カミナリを使う (0.14.0)

4

1 に答える 1

0

コントローラーで

 @facilities = kaminari.paginate_array(@facilities).page(params[:page]).per(params[:per_page])

そしてあなたの見解では<%= page_entries_info @facilities %>&<%= paginate @facilities %>

于 2014-05-14T06:42:08.240 に答える