我是rails的新手,并且正在尝试开发一个具有多种不同类型用户的系统。我正在尝试使用命名空间来区分这些区域,但我希望共享模型。我已经创建了一个用户对象,我希望能够从admin命名空间编辑它。我已经搭建了一个Admin :: UserController,并将路由定义为:
namespace :admin do
resources :users
end
root :to => "home#index"
当我转到admin/users
时,它显示正常,但点击“创建用户”会给我一个NoMethodError,说它无法找到路径users_path
。搜索后我意识到我需要更新我的routes.rb到:
resources :users
namespace :admin do
resources :users
end
root :to => "home#index"
现在我可以转到admin/users/new
表单了,但是当我发布它时会尝试返回/users
。我的两个问题是:1。我怎样才能做到这一点? 2.我是否正确地尝试以这种方式使用命名空间?
答案 0 :(得分:2)
您为/admin/users
和/users
生成了路由。如果您想使用Admin::UsersController
,请使用admin_users_path
,如果您希望在表单中使用UsersController
,请使用users_path
。
如果您想知道生成的路由的名称是什么,我还建议您使用rake routes
命令。