Parameters Rails 3路由和资源中的额外参数

Parameters Rails 3路由和资源中的额外参数,parameters,formatting,ruby-on-rails-3,routes,page-caching,Parameters,Formatting,Ruby On Rails 3,Routes,Page Caching,新的rails路由在很多方面都很好,但是我正在寻找最好的方法来实现页面缓存,就像我在Rails2.x中看到的那样,我很快就会找到 我有许多基本公式的可能期望路线: /(bazes/<baz id>/)(foos/<foo id>/)bars/page/<page num>/<format> 英文: Give me all bars, page 1, formatted xml Give me all bars that belong to foo

新的rails路由在很多方面都很好,但是我正在寻找最好的方法来实现页面缓存,就像我在Rails2.x中看到的那样,我很快就会找到

我有许多基本公式的可能期望路线:

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

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'

但在Rails3中这似乎是错误的,我认为我缺少了一些可以有效解决路由问题的东西。如何使用Rails 3路由实现这些路由模式?

我可以通过一条匹配语句获得它

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