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

时间:2010-09-14 04:34:15

标签: parameters formatting ruby-on-rails-3 routes page-caching

新的rails路由在很多方面都很棒,但是我正在寻找使用rails 2.x中的页面和格式实现页面缓存的最佳方法,并且即将推出

我有许多可能的基本公式所需的路线:

/(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 个答案:

答案 0 :(得分:1)

我能够通过一个匹配声明获得它

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