4

我定义了以下路线:

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 的链接。你知道这可能是什么原因吗?

4

1 回答 1

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”,但我不确定这会导致所描述的问题。

于 2010-04-16T15:11:34.703 回答