我在config/routed.db
中有这个:
namespace :admin do
resources :users
resources :events
end
我使用Rails提供的脚手架程序生成了User
模型,然后使用Rails的generate
简单地生成了一个admin/admin控制器,并将所有与用户相关的内容简单地移动到控制器/视图/帮助程序子目录中。是的,我确实需要在一些地方添加admin_
,并且在表单部分中,我必须将form_for(@user)
改为form_for([:admin, @user])
。
当我尝试创建新用户(即POST
用户数据)时,我会收到以下错误消息:
undefined method `user_url' for #<Admin::UsersController:0x13f408e0>
应用程序级别的跟踪显示错误在此处引发:
app/controllers/admin/users_controller.rb:47:in `create'
这个错误产生的代码行是:
format.html { redirect_to @user, :notice => 'User was successfully created.' }
上述代码行位于
respond_to
块中。那么,我有两个问题:
1. 我该如何解决这个问题? 2. 是否有更聪明、更好的Rails方式来处理这个问题?
此外,如果您建议我在更聪明、更好的Rails方式下重新进行操作,那么将额外获得奖励分数!不过,无论如何我都会这样做!:D
更新
哦,我差点忘了一些相关的事情!我还让
Admin::UsersController
继承自Admin::AdminController
(通常又继承自ApplicationController
):
Admin::UsersController < Admin::AdminController
admin_user_path
? - omninonsenserake routes
命令查看具体的路由信息。除此之外,还可以参考这个指南。 - Thilo