ruby on rails 3-登录时设计不区分大小写的电子邮件



我正在使用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

相关内容

  • 没有找到相关文章

最新更新