我定义了以下路线:
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的链接。你知道这可能导致什么吗?
答案 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',但我不确定是否会造成所描述的麻烦。