2010-03-17 6 views
12

Comment remplacer/set authlogic utiliser le champ e-mail à la place du champ de nom d'utilisateur pour les inscription et l'authentification, ayant un nom d'utilisateur + un e-mail est parfois trop intense pour certains des scénarios d'enregistrementemail authlogic comme nom d'utilisateur

Répondre

11

Si vous supprimez simplement la colonne login et ajoutez une colonne email, authlogic fera le reste.

Voir cet exemple readme pour toutes les colonnes DB facultatives/requises.

+12

magic !. Aussi j'ai trouvé en utilisant cela a également travaillé: actes_as_authentic do | c | c.login_field =: email fin – ADAM

+2

Je devais me connecter avec mon adresse e-mail, mais détailler le nom d'utilisateur. Je préfère donc la réponse de commentaire d'ADAM. –

10

meilleure réponse essayez ceci ... bien, mettez à jour authlogic gem si nécessaire!

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 

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

merci pour la réponse amrnt! – ADAM

3

Comme le commentaire d'Adam contient une bonne réponse à cette question. Ajoutez ceci à votre modèle d'utilisateur:

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