2012-06-02 8 views
18

Soy nuevo en Devise y lo tengo funcionando bien utilizando una dirección de correo electrónico como clave de autenticación. Sin embargo, tengo un caso de uso que requiere un nombre de usuario en su lugar y parece que no puedo hacerlo funcionar.Diseñar la autenticación con nombre de usuario en lugar de correo electrónico

Agregué una columna de cadena, "nombre de usuario" a la tabla de usuarios, cambié los campos de: correo electrónico a: nombre de usuario en el formulario de inicio de sesión y cambié la clave de autenticación en devise.rb a: nombre de usuario aún cuando inicio sesión, me aparece este mensaje: "Por favor, introduzca una dirección de correo electrónico".

¿Qué estoy haciendo mal?

**new.html.erb** 

    <div><%= f.label :username %><br /> 
    <%= f.email_field :username %></div> 

**User.rb** 
class User < ActiveRecord::Base 
    # Include default devise modules. Others available are: 
    # :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable 
    devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable, :authentication_keys => [:username] 

    # Setup accessible (or protected) attributes for your model 
    attr_accessible :email, :password, :password_confirmation, :remember_me, :username 
    # attr_accessible :title, :body 
end 

**devise.rb** 
config.authentication_keys = [ :username ] 
+0

¿reinició su aplicación de rieles? – rb512

+0

Sí, el servidor de rieles reiniciados también sacó lo que mencionaste. Sin alegría. – nulltek

Respuesta

40

En sus config/inicializadores descomentar/devise.rb config.authentication_keys = [ :email] y el cambio a config.authentication_keys = [ :username ]

Actualización:
de forma incorrecto.
Cambio f.email_field a f.text_field

+0

Así es como lo tengo configurado. config.authentication_keys = [: username] – nulltek

+0

Holy cow that was stupid. Gracias por haberlo señalado. Supongo que no debería jugar con cosas cuando estoy cansado. – nulltek

+0

¡Gracias .........! –

1
  • En primer lugar, asegúrese de ejecutar las migraciones.

bundle exec rake db:migrate

  • Generar las vistas para Diseñar, de lo contrario Diseñar usarán los valores por defecto.

rails generate devise:views

  • Cambiar las Idear/puntos de vista como desee (en sustitución de campo de correo electrónico a Campo Nombre de usuario)

  • Reiniciar el servidor web

espero que ayude!

Cuestiones relacionadas