2009-08-28 1 views
0

в моем приложении тока рельсов У меня есть куча именованных маршрутов, определенных для борьбы с статическим контентом, как это:Rails маршрутных хелпер для 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 

Теперь я хотел бы, чтобы реорганизовать это довольно отвратительный кусок маршрутизации, чтобы иметь что-то вроде этого:

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

Я создал пространство имен контроллера статические и сопоставить действия всех этих контроллеров в пространстве имен. Но теперь, конечно, все те полезные помощники маршрутов, как menu1_sub2_path перестают работать, и мне придется их менять.

Uff! Рефакторинг всех способов использования помощников пути к уродливому: controller-: action-style?

Итак, мой вопрос в том, что кто-то видит хороший способ окружить это. Есть ли способ определить эти помощники пути - или способ их создания? Или даже более умный способ сделать эти неприятные сопоставления?

Спасибо за вашу помощь,

Джо

ответ

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

затем вызвать его:

page_path(:imprint)