2009-08-28 8 views
0

dans mon application actuelle des rails j'ai un tas de routes nommées définies pour traiter le contenu statique comme ceci:aides d'itinéraire Rails pour map.connect

map.with_options :controller => 'static_content' do |static| 
    static.imprint 'imprint', :action => 'imprint' 
    static.menu1  'menu1',  :action => 'menu1' 
    static.menu1_sub1 'menu1/sub1', :action => 'menu1_sub1' 
    static.menu1_sub2 'menu1/sub2', :action => 'menu1_sub2' 
    static.menu2  'menu2',  :action => 'menu2' 
    ... 
end 

Maintenant, je voudrais factoriser ce morceau tout à fait dégoûtant de routage d'avoir quelque chose comme ceci:

map.connect 'menu1/:action', :controller => 'static/menu1' 
map.connect 'menu2/:action', :controller => 'static/menu2' 
... 

J'ai créé l'espace de noms de contrôleur statique et cartographier les actions de tous ces contrôleurs dans l'espace de noms. Mais maintenant - bien sûr - toutes ces aides de route utiles comme menu1_sub2_path cessent de fonctionner et je vais devoir les changer.

Uff! Refactoriser toutes les utilisations de path aiders à laid: controller-: action-style?

Donc, ma question est de savoir si quelqu'un voit un bon moyen d'entourer cela. Existe-t-il un moyen de définir ces aides path - ou la façon dont elles sont créées? Ou même une façon plus intelligente de faire ces mappings méchants?

Merci pour votre aide,

Joe

Répondre

2
map.with_options :controller => 'static_content' do |static| 
    static.page ':action' 
end 

puis l'appeler:

page_path(:imprint)