5

在我的 Rails 应用程序中,我正在使用设计进行用户注册。现在除了用户注册之外,管理员还应该在后端创建、编辑和删除用户。我在通过该管理后端创建新用户时遇到问题。

当我在浏览器中调用 UsersController#new 操作时,它会打开我创建的用户输入表单。当我单击提交按钮时,会调用 Devise::RegistrationsController#create 但它应该调用我的 UsersController#create 操作。

如何在管理后端使用用户创建时调用 UsersController#create,并在用户使用注册时调用 Devise::RegistrationsController#create?

4

2 回答 2

5

1)添加路径前缀来设计:devise_for :users, :path_prefix => 'd'

2)运行rake routes

user_registration POST   /d/users(.:format)   devise/registrations#create
...
users POST   /users(.:format)  users#create

因此,第一条路线为Devise::RegistrationsController,第二条路线为您的UsersController

你可以简单地使用admin/new_user.html.erbform_for User.new

于 2012-05-12T14:24:33.473 回答
0

在米哈伊尔的回答后面,您还可以告诉设计使用任何其他路径名而不是“用户”。例如:

devise_for :users, path: 'auth'

将导致设计 /auth/sign_up、/auth/sign_in 等路由。您的自定义用户路由将是安全的。

(可以在这里找到 devise_for 选项的完整列表)

于 2015-01-14T13:39:47.477 回答