will_paginate路线仅适用于页面> 1

时间:2010-04-16 09:55:06

标签: ruby-on-rails ruby routes will-paginate

我定义了以下路线:

map.resources :categories, :has_many => :downloads
map.resources :downloads, :member => {:go => :get}, :collection => {:tag => :get}
map.connect '/downlods/page/:page', :controller => 'downloads', :action => 'index'
map.connect '/categories/:category_id/downloads/page/:page', :controller => 'downloads', :action => 'index'

由于某种原因,调用will_paginate帮助程序的第一页导致呈现带有?page = 2的链接,而后续页面则带有/ downloads / page / 2的链接。你知道这可能导致什么吗?

1 个答案:

答案 0 :(得分:1)

如果您只是使用map.connect声明一条路线,那么如果您执行以下操作,它可能会被击中和遗漏:

link_to("Next", :page => 2)

您可能想要做的是命名路线,然后以这种方式使用它:

map.downloads_paginated '/downloads/page/:page', :controller => 'downloads', :action => 'index'

然后按名称使用路线:

link_to("Next", downloads_paginated_path(2))

这些更可靠。

作为一个注释,你的路径中有'/ downlods'而不是'/ downloads',但我不确定是否会造成所描述的麻烦。