Rails路由的范围为“:locale”和嵌套资源

时间:2013-02-15 05:14:46

标签: ruby-on-rails-3 routes

我怀疑铁路的路线。

在我的新项目中,我的模型名称为

  1. Country
  2. States
  3. Category
  4. Subcategory
  5. advertisements

我想生成如下的路线

1. /en
2. /en/advertisements
3. /en/indiana
4. /en/indiana/advertisements
5. /en/indiana/cars
6. /en/indiana/cars/advertisements
7. /en/indiana/cars/bmw/advertisements
8. /en/cars/advertisements

前: -

  en is country locale
  indiana is state
  cars is category
  bmw is sub category

这是我在routes.rb中的路线声明

  scope ":language" do <br />
      &nbsp;&nbsp;&nbsp;&nbsp;scope "(:state)" do <br />
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scope "(:main_category)" do <br />
       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;      scope "(:category)" do <br />
       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;    resources :advertisements <br />
       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;    match "search" => "advertisements#index"
       <br />  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;end<br />
     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end<br />
  &nbsp;&nbsp;&nbsp;&nbsp;  end<br />
  end  <br />

如果网址为“/ en / indiana / cars / bmw / advertments”,则上述路线正常工作

现在我想要“/ en / cars / advertisements”的路线 “/ en / cars / advertisements”然后它会将语言和汽车分配给州

我如何申报此“/ en / cars / advertisements”的路线,

请帮帮我

提前致谢

1 个答案:

答案 0 :(得分:0)

使用匹配路线。我认为这可以解决你的问题。

   match '/:language/:category/advertisements' => 'controller#action_name'