如何使用Devise手动创建用户

时间:2012-05-12 08:58:32

标签: ruby-on-rails devise admin

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

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

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

2 个答案:

答案 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.erbform_for User.new

中使用即可

答案 1 :(得分:0)

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

devise_for :users, path: 'auth'

会产生/ auth / sign_up,/ auth / sign_in等设计路线。您的自定义用户路线也是安全的。

(可以找到devise_for选项的完整列表here