2012-06-02 21 views
18

Sono nuovo di Devise e funziona correttamente utilizzando un indirizzo di posta elettronica come chiave di autenticazione. Tuttavia, ho un caso d'uso che richiede un nome utente e non riesco a farlo funzionare.Configurare l'autenticazione con nome utente anziché email

Ho aggiunto una colonna di stringhe, "nomeutente" alla tabella utenti, modificato i campi da: email a: nome utente nel modulo di accesso e ho modificato la chiave di autenticazione in devise.rb in: nome utente ancora quando vado ad accedere ricevo questo messaggio: "Inserisci un indirizzo email".

Cosa sto sbagliando?

**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

hai riavviato l'app per rotaie? – rb512

+0

Sì, il server rails riavviato ha estratto anche ciò che hai menzionato. Nessuna gioia. – nulltek

risposta

40

nella configurazione/initializers/devise.rb uncomment config.authentication_keys = [ :email] e modificarlo in config.authentication_keys = [ :username ]

Aggiornamento:
del errati modulo.
Change f.email_field a f.text_field

+0

Ecco come l'ho impostato. config.authentication_keys = [: username] – nulltek

+0

Santa mucca che era stupida. Grazie per avermelo fatto notare. Suppongo che non dovrei giocare con roba quando sono stanco. – nulltek

+0

Grazie .........! –

1
  • Prima di tutto, assicurarsi di eseguire le migrazioni.

bundle exec rake db:migrate

  • Generare le viste per Devise, altrimenti Devise utilizzerà le impostazioni predefinite.

rails generate devise:views

  • Modificare le Devise/viste come si desidera (in sostituzione di campo e-mail a campo nome utente)

  • Riavviare il server web

Speranza che aiuta!

Problemi correlati