2012-07-03 84 views
0

我有一個Rails應用程序,它正在開發中使用Devise。我修改了它,遵循官方Devise文檔,使用用戶名而不是電子郵件地址。我也使用MySQL,而不是SQLite。Ruby on Rails - 設計登錄在生產中區分大小寫

登錄時,在開發中,我可以輸入「admin」作爲用戶「Admin」登錄。但在生產中,「管理員」不起作用,並要求我輸入區分大小寫的「管理員」。

我假設它是我的MySQL數據庫中的不同設置?

回答

3

我假設這裏的情況。如果是username,請使用下面的代替login。在您的設計初始,有一個設置:

config.case_insensitive_keys = [ :email ] 

更改爲

config.case_insensitive_keys = [ :email, :login ] 

這將:

這些密鑰將在創建或修改用戶downcased並用來當驗證或查找用戶。默認是:電子郵件。

因此,您可能需要更新管理員的登錄一次,但如果您輸入管理員或管理員,它將查找並進行身份驗證。

+0

有點遲到的反應,但感謝您的幫助!這對我來說很有用。非常感謝。 – Kobius

0

一般來說,我們會按照以下方式做一些事情。您可以檢查這是否是,你必須在名爲login登錄的屬性,在管理用戶模型

validates :email,:presence => true, 
    :format => {:with=>email_regex,:message => "not a valid email"}, 
    :uniqueness => {:case_sensitive => false}