代码之家  ›  专栏  ›  技术社区  ›  coneybeare

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

  •  0
  • coneybeare  · 技术社区  · 15 年前

    新的rails路由在很多方面都很棒,但是我正在寻找一种最好的方法来实现页面和格式的页面缓存,就像我在rails2.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'
    

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

    1 回复  |  直到 15 年前
        1
  •  1
  •   coneybeare    15 年前

    我用一个匹配语句就可以得到它

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