2010-08-10 128 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

相關問題