我有一个用户注册表单,但是当用户重新登录时,他们需要使用与注册时相同的案例输入他们的电子邮件地址。我有防止这种情况发生的措施,但由于某些奇怪的原因,它们不起作用。
在用户模型中:
validates :email, :presence => true,
:format => { :with => email_regex },
:uniqueness => { :case_sensitive => false }
email_regex = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
这不起作用...我不确定为什么。但后来我添加了另一种方法来查看它做了什么:
before_save :downcase_fields
def downcase_fields
self.email.downcase
end
当用户在我的 session Controller 中输入这些字段时,将字段小写:
def create
user = User.authenticate(params[:session][:email].downcase,
params[:session][:password])
#...
end
当用户重新登录时,所有这些仍然会产生一个区分大小写的电子邮件字段...帮助?
最佳答案
试试这个:
self.email.downcase!
关于ruby-on-rails - Rails 中的大小写不敏感,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6418612/