0

Новые маршруты рельсов великолепны во многих аспектах, но я ищу лучший способ добиться кеширования страниц со страницами и форматами, как у меня в рельсах 2.x, и я скороДополнительные параметры в Rails 3 маршрута и ресурсы

у меня есть много возможных желаемых маршрутов основных формул:

/(bazes/<baz id>/)(foos/<foo id>/)bars/page/<page num>/<format> 

Пример маршрута:

/bars/page/1/xml 
/foos/1/bars/page/2/html 
/bazes/3/foos/1/bars/page/1/json 
/bazes/3/bars/page/2/xml 

В английском языке:

Give me all bars, page 1, formatted xml 
Give me all bars that belong to foo 1, page 2, formatted html 
Give me all bars that belong to baz 3 AND foo 1, page 1, formatted json 
Give me all bars that belong to baz 3, page 2, formatted xml 

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

map.baz_foo_bars '/bazes/:baz_id/foos/:foo_id/bars/page/:page/:format', :controller => 'bars', :action => 'formatted_bars' 

, но это кажется неправильным в Rails 3, и я думаю, что я что-то, что может решить мои горести маршрутизации эффективно отсутствует. Как я могу достичь этих шаблонов маршрутизации с помощью маршрутизации Rails 3?

ответ

1

Я был в состоянии получить его с помощью одного оператора матча

match "(/bazess/:baz_id)(/foos/:foo_id)/bars(/page/:page)(/:format)" => "bars#index", :as => :bars