2010-12-08 6 views
8

Dans Rails 3 Je peux faire quelque chose comme ceci:Rails paramètres 2.3.x équivalent de Rails3 itinéraire facultatif

match "/page(/:section)", :to => 'some_controller#page' 

Et les deux /page et /page/some_section à la carte sera some_controller # page

Y at-il un équivalent de ceci dans Rails 2.3.x ?? Je ne peux pas sembler trouver

J'utilise actuellement deux méthodes d'itinéraires distincts comme ceci:

map.page   '/page',   :action => 'page' 
map.page_section '/page/:section', :action => 'page' 
+0

Vous pouvez écrire map.connect "page" et map.connect "page /: section" comme règles distinctes. –

+0

aurait dû mentionner que c'est ce que j'utilise actuellement, à la recherche d'une syntaxe plus laconique – brad

Répondre

14

Un paramètre devient facultatif si vous spécifiez une valeur par défaut.

map.page '/page/:section', :action => 'page', :section => "default" 

Si :section est présent, la valeur sera la valeur actuelle. Sinon, il sera default par défaut et le routeur ne se plaindra pas. Vous pouvez également utiliser la valeur nil par défaut.

map.page '/page/:section', :action => 'page', :section => nil 
+0

de sorte que j'ai toujours params [: section] = 'default' dans mon contrôleur? – brad

+0

Est-ce que ma valeur par défaut peut être "nil"? – brad

+1

pour répondre à ma propre question, en réglant ': section => nil' travaillé. THX! – brad

Questions connexes