Rails命名空间错误?

我在config/routed.db有这个:

 namespace :admin do resources :users resources :events end 

我通过使用脚手架Rails提供了生成User模型,然后我通过使用Rails的generate简单地生成了一个管理员/管理员控制器,并简单地将所有与用户相关的内容移动到controllers / views / helpers内的admin子目录中。 是的,我确实必须在几个地方添加admin_并在表单部分内部我必须将form_for(@user)更改为form_for([:admin, @user])

当我尝试创建一个新用户时(这是我发布用户数据的时候),我收到以下错误消息:

 undefined method `user_url' for # 

应用程序级跟踪显示此处引发错误:

 app/controllers/admin/users_controller.rb:47:in `create' 

引发此错误的代码行:

 format.html { redirect_to @user, :notice => 'User was successfully created.' } 

上面的行在respond_to块内。

所以,我有两个问题:

  1. 我该如何解决这个问题?
  2. 这样做有更智能,更好的轨道方式吗?

此外,如果你建议我用更聪明,更好的轨道方式重新做这个奖励积分! 好吧,无论如何我会这样做! :d


更新

哦,我差点忘了可能有用的东西! 我还使Admin::UsersControllerinheritance自Admin::AdminController (通常inheritance自ApplicationController ):

Admin::UsersController < Admin::AdminController

您还需要在重定向中使用命名空间:

 redirect_to [:admin, @user] #... 

要么

 redirect_to admin_user_path(@user) #...