5

Seguí Devise's instructions for using usernames in addition to emails para inicios de sesión. Funciona muy bien, excepto que la gente puede registrarse con nombres de usuario duplicados. Si alguien intenta registrarse con una dirección de correo electrónico duplicado, que se presentan con este mensaje de error en la página de registro:Nombres de usuario únicos en Devise for Rails

1 error prohibida a este usuario para ser salvo:

Email has already been taken 

quiero algo muy similar para los nombres de usuario. ¿Cómo implemento esto?

Respuesta

6

Debe usar el validador de exclusividad. Añadir siguiente en user.rb:

validates_uniqueness_of :username 

more about this validator

+0

perfecto, el mensaje de error es exactamente lo que yo esperaba que fuera: "nombre de usuario ya ha sido tomada". –

+0

Creo que esto no funcionará cuando cambies tu nombre de usuario y luego quieras volver a cambiarlo, es decir, cuando quieras editar tu perfil. Por ejemplo, si desea cambiar su nombre de usuario de abc a abc1 funcionará, pero si desea volver a cambiarlo a abc y presionar el botón de actualizar, obtendrá el error "Nombre de usuario ya ha sido tomado" – idjuradj

+0

@ Nicholas Creo que estás creando dos modelos en tu código o hay algún otro problema involucrado. –

Cuestiones relacionadas