在我的rails应用程序中,我正在使用设计用户注册。 除了用户注册之外,管理员也应该在后端创建,编辑和删除用户。 我在通过该管理员后端创建新用户时遇到问题。
当我在浏览器中调用UsersController #new动作时,它会打开我创建的用户输入表单。 当我点击提交按钮时,会调用Devise :: RegistrationsController #create,但它应该调用我的UsersController #create action。
在管理员后端使用用户创建时,如何调用UsersController #create,以及在用户使用注册时调用Devise :: RegistrationsController #crera?
答案 0 :(得分: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.erb
:form_for User.new
答案 1 :(得分:0)
在米哈伊尔的答案背面,您还可以告诉设计使用任何其他路径名而不是用户'。例如:
devise_for :users, path: 'auth'
会产生/ auth / sign_up,/ auth / sign_in等设计路线。您的自定义用户路线也是安全的。
(可以找到devise_for选项的完整列表here)