我在使用kaminari时遇到问题,使用自定义的“unRestful”网址似乎无法对结果进行分页。

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

因此,/:foo / sports /:bar指向 Controller ,/:foo / sports /:bar / 1指向另一个 Controller 。这是一个令人作呕的URL方案,但我现在没有办法更改规格。

如果我在没有Kaminari的情况下调用该页面,那么一切都会按预期进行,我将看到第一页。当我像这样使用Kaminari时:
<%= paginate @facilities, :params => { :controller => 'facilities', :action => 'index' } %>

Rails给我以下网址的路由错误:
http://lvh.me:8080/milano/sports/palestra/1

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

老实说,我不知道该怎么办,一切对我来说似乎都是正确的,并且找不到关于此案的kaminari小组或更多文档。

问题似乎是对分页的调用在某种程度上会生成一个页面设置为nil的URL。

有什么建议吗?

使用滑轨(3.2.8)
使用kaminari(0.14.0)

最佳答案

在 Controller 中

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

并在您看来<%= page_entries_info @facilities %><%= paginate @facilities %>

关于ruby-on-rails - 在自定义路线上使用kaminari进行分页,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12277917/

10-13 06:37