2010-03-17 8 views
12

Wie überschreiben i/set authlogic die E-Mail-Feld zu verwenden, anstatt des Benutzernamens Feld sowohl für die Registrierung und Authentifizierung einen Benutzernamen mit + eine E-Mail wird gelegentlich zu intensiv für einige einige Registrierungsszenarienauthlogic E-Mail als Benutzername

Antwort

11

Wenn Sie entfernen einfach die login Spalte und fügen eine email Spalte hinzu, authlogic erledigt den Rest.

Dieses Beispiel zeigt readme für alle optionalen/erforderlichen DB-Spalten.

+12

magic !. Auch ich fand mit dieser auch funktioniert: acts_as_authentic do | c | c.login_field =: E-Mail Ende – ADAM

+2

Ich musste mich mit E-Mail anmelden, noch den Benutzernamen zu verkaufen. Also bevorzuge ich die Kommentarantwort von ADAM. –

10

bessere Antwort versuchen Sie dies ... nun, update authlogic Juwel, wenn nötig!

user_session.rb

class UserSession < Authlogic::Session::Base 
    find_by_login_method :find_by_email #for example or you can make what ever method see exapmle 2 
end 

--- Beispiel 2

user_session.rb

class UserSession < Authlogic::Session::Base 
    find_by_login_method :find_by_anything 
end 

user.rb

class User < ActiveRecord::Base 
    acts_as_authentic 

    def self.find_by_anything(login) 
    find_by_login(login) || find_by_email(login) || find_by_id(login) 
    end 
end 
+1

danke für die Antwort amrnt! – ADAM

3

Wie Adams Kommentar eine gute Antwort auf diese Frage enthält. Fügen Sie das Ihrem Benutzermodell hinzu:

class User < ActiveRecord::Base 
    acts_as_authentic do |c| c.login_field = :email end 
end