2010-04-16 5 views
4

Je les routes suivantes définies:itinéraire will_paginate ne fonctionne que sur la page> 1

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' 

Pour une raison quelconque, la première page que l'aide will_paginate est appelée sur les liens de causes avec page = 2 à rendre,? tandis que les pages suivantes ont des liens avec/downloads/page/2. Savez-vous ce qui pourrait causer cela?

+0

montrer votre code will_paginate, s'il vous plaît – fl00r

Répondre

1

Si vous déclarez simplement un itinéraire avec map.connect, il peut être hasardeux, à la façon dont il est acheminé si vous faites quelque chose comme:

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

Ce que vous pouvez faire est de nommer la route et puis l'utiliser de cette façon:

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

ensuite, utilisez la route par nom:

link_to("Next", downloads_paginated_path(2)) 

Thes e sont beaucoup plus fiables. Comme note, vous avez '/ downlods' dans votre chemin au lieu de '/ downloads' mais je ne suis pas sûr que cela causerait le problème décrit.

+1

'will_paginate (@blah, {: controller => 'Téléchargements'})' spécifiant le contrôleur pourrait explicitement aider. –

Questions connexes