首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Rails -设计,电子邮件不区分大小写

Rails -设计,电子邮件不区分大小写
EN

Stack Overflow用户
提问于 2010-11-11 03:14:50
回答 5查看 9.1K关注 0票数 19

我正在使用带登录凭据的Devise :电子邮件/密码-没有用户名

我刚刚注意到,登录过程对电子邮件是区分大小写的。所以,如果你用bob@apPle.com注册,然后尝试用Bob@apple.com登录,你会得到一个错误。非常令人困惑。

如何让devise用户使用他们的电子邮件/密码登录,并且电子邮件不区分大小写?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-11-11 03:20:50

一种选择是覆盖devise使用的find方法。类似于:

代码语言:javascript
复制
# User.rb
before_save do
  self.email.downcase! if self.email
end

def self.find_for_authentication(conditions) 
  conditions[:email].downcase! 
  super(conditions) 
end 
票数 10
EN

Stack Overflow用户

发布于 2011-09-06 11:37:56

你可以像下面这样很容易地解决这个问题。

代码语言:javascript
复制
# config/initializers/devise.rb
Devise.setup do |config|
  config.case_insensitive_keys = [:email, :username]
end
票数 69
EN

Stack Overflow用户

发布于 2010-12-22 08:18:40

我将此代码添加到我的用户模型中,以便将其存储为区分大小写,但在登录时将其设置为不区分大小写:

代码语言:javascript
复制
def self.find_for_database_authentication(conditions = {})
  self.where("LOWER(email) = LOWER(?)", conditions[:email]).first || super
end

它在Heroku上有效。

顺便说一句,这只是一个临时修复,因为问题已经解决了,这将是Devise 1.2的默认行为。详情请参见this pull request

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4148133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档