我正在使用postgresqlDevise将电子邮件存储在数据库中,并带有下键:config.case_insensitive_keys=[:电子邮件]
但当我使用大写的电子邮件登录时,我得到了一个错误,即电子邮件是错误的。我找到了这个孤独,但这有1个问题:
def self.find_for_authentication(conditions = {})
# Allow to log in with case insensitive email
conditions[:email].downcase!
end
1) 当我尝试使用错误的大写电子邮件登录时,我出现了错误,我的电子邮件使用了小写。(使用登录AAA@bbb.CCC,得到aaa@bbb.ccc,但我需要展示一下AAA@bbb.CCC)。我该如何改变这种行为?
我不确定我是否能找到你,但你应该能够访问原始电子邮件提供
条件[:电子邮件]
或者登录后,您可以通过self.email.
让我知道这是否有助于
解决方案非常简单。您只需要在登录时复制params哈希并更改此哈希中的电子邮件,但当用户出现异常时,我们只返回输入params 的原始哈希
def self.find_for_authentication(conditions = {})
# Allow to log in with case insensitive email
new_hash = conditions.dup
new_hash[:email] = conditions[:email].downcase
where(new_hash).first
end