2010-08-10 131 views
1

我为我的身份验证系统实施了authlogic。我希望是否有方法通过“用户名”或“电子邮件”登录用户。此处提供的解决方案http://goo.gl/Ato1不起作用,因为我在数据库中没有“登录”字段。配置authlogic使用“用户名”或“电子邮件”登录

那么,我错过了数据库中的“登录”字段?或者有没有其他的方式来处理它?

登录应由用户名或电子邮件发生......

+0

那么,登录来源,如果不从数据库? – 2010-08-10 23:26:09

+0

它只是一个参数!它不在模型中... – Madhusudhan 2010-08-11 18:03:22

回答

8

你试试这个:

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

和user.rb

def self.find_by_username_or_email(login) 
    find_by_username(login) || find_by_email(login) 
end 

#note login is only the parameter name and does not refer to your model 
+0

y那工作...!我想在那里登录是数据库中的一个领域...谢谢! – Madhusudhan 2010-08-11 16:31:38

+1

有一个流行的authlogic教程,他们使用登录作为用户的主要帐户用户名字段。因此,讨论链接到登录的解决方案并且是用户模型的一个字段。也许它会导致混淆 - 你用登录登录...因此我的评论是我的答案中的一个参数。 http://github.com/binarylogic/authlogic_example – mark 2010-08-11 19:37:22

相关问题