2010-07-27 4 views
0

Je construis un site article/blog où tout article peut apparaître dans une série de chemins d'URL.Rails 2 Trailing Route Paramètre

/section/article 
/section/page/article 
/section/page/page2/article 

Cela fonctionne, mais si je voulais avoir le numéro de page pour cet article (/ page/123) est lié à ces URL

/section/article/page/123/ 
/section/page/article/page/123 
/section/page/page2/article/page/123 

Cela signifierait que je devrais créer une route spécifique pour chaque URL différente? Cela signifierait que je créerais des douzaines de paramètres de routage d'adresse URL. Existe-t-il des rails pour indiquer que toutes les URL peuvent avoir un suffixe/page/NUMBER à la fin de l'URL et continuer à router normalement (assigner le NUMBER à un paramètre et continuer à aller à la page normalement)?

Répondre

1

La globalisation de route, décrite à http://guides.rubyonrails.org/routing.html#route-globbing, pourrait fonctionner dans cette situation. Par exemple, votre itinéraire peut lire map.connect '/:section/*page_subpage_path/page/:number', :controller => 'articles', :action => 'show'

Ce code exact peut ne pas fonctionner comme prévu, mais cette méthode peut être une bonne direction à suivre. Bonne chance :)

0

Si vous souhaitez créer des routes aussi personnalisées que celles dont vous avez normalement besoin pour créer un grand nombre de routes pour les gérer. Le format général est/resource /: id lors de l'utilisation de map.resource, tout autre élément que vous est laissé à spécifier. Étant donné que le fichier Rails routes.rb est un fichier exécutable ruby, vous pouvez souvent définir vos routes par programmation en répétant des motifs ou en faisant des combinaisons sur des tableaux si nécessaire.