2012-05-12 16 views
5

En mi aplicación Rails, estoy utilizando un dispositivo para el registro de usuarios. Ahora además de los registros de usuarios, los administradores también deben crear, editar y eliminar usuarios en el backend. Tengo un problema con la creación de nuevos usuarios a través de ese back-end de administración.Cómo crear usuarios manualmente con Devise

Cuando llamo a la acción nueva UsersController # en mi navegador, abre el formulario de entrada de usuario creado por mí. Cuando hago clic en el botón de enviar se llama a Devise :: RegistrationsController # create, pero debe llamar a mi acción UserController # create.

¿Cómo logro llamar a UsersController # create cuando uso la creación del usuario en el back-end de administración, y para llamar a Devise :: RegistrationsController # create cuando un usuario usa el registro?

Respuesta

5

1) añadir el prefijo de ruta para idear: devise_for :users, :path_prefix => 'd'

2) ejecutar rake routes:

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

Así, la primera ruta de Devise::RegistrationsController, en segundo lugar para su UsersController.

Y puede simplemente usar en el admin/new_user.html.erb: form_for User.new

0

En la parte posterior de la respuesta de los Mikhail, también puede decirle a idear utilizar cualquier otra vía de acceso en lugar de 'usuarios'. Por ejemplo:

devise_for :users, path: 'auth' 

resultaría en rutas como Idear/auth/sign_up,/auth/sign_in, etc, y sus rutas de usuario personalizadas sería seguro.

(La lista completa de opciones devise_for se puede encontrar here)

Cuestiones relacionadas