2012-01-05 71 views
1

我是新来的rails,并试图开发一个系统,将有几个不同类型的用户。我试图使用命名空间来分隔这些区域,但我希望共享这些模型。我创建了一个用户对象,我希望能够从管理员名称空间进行编辑。我的脚手架管理员:: 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.我是否正在尝试以这种方式使用命名空间?

回答

2

您有为/admin/users/users产生的路线。如果您要使用Admin::UsersController,请使用admin_users_path,如果您希望在您的表单中使用UsersController,请使用users_path

如果您想知道生成的路由的名称是什么,我还想建议您使用rake routes命令。