如何调整嵌套路由

时间:2012-02-05 16:25:45

标签: ruby-on-rails-3 routes

我有这样的路线:

namespace :admin do
  resources :users, :only => :index do
    resources :skills, :only => :index
  end
end
resources :skills

在这种情况下,我得到了:

admin_user_skills GET /admin/users/:user_id/skills(.:format)
{:action=>"index", :controller=>"admin/skills"}

如何更改嵌套路由以指向SkillsController而不是Admin :: SkillsController?我想要这个:

admin_user_skills GET  /admin/users/:user_id/skills(.:format)
{:action=>"index", :controller=>"skills"}

有趣的事情 - 如果我们没有Admin :: SkillsController,它将自动使用SkillsController,但仅限于开发。

1 个答案:

答案 0 :(得分:1)

在路由中使用namespace意味着要为“命名空间”控制器设置特殊目录,在您的情况下为admin。但如果您使用scope代替您拥有所需内容:

scope '/admin' do
  resources :users, :only => :index do
    resources :skills, :only => :index
  end
end