ruby-on-rails - Rails 中的大小写不敏感

标签 ruby-on-rails ruby ruby-on-rails-3

我有一个用户注册表单,但是当用户重新登录时,他们需要使用与注册时相同的案例输入他们的电子邮件地址。我有防止这种情况发生的措施,但由于某些奇怪的原因,它们不起作用。

在用户模型中:

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/

相关文章:

ruby-on-rails-3 - 我正在寻找 Rails 3 论坛应用程序

mysql - Rails 控制台与 MySQL 控制台 - 计算大表中的行数

ruby-on-rails - Rails 6 `protect_from_forgery with: :null_session` 不工作

ruby-on-rails - 无法删除文件

ruby-on-rails - 如何创建复杂的 Nested -> Belongs To 对象?

ruby-on-rails - 为数据库中的多个客户端创建 "walled gardens"的最佳方法是什么?

ruby-on-rails - 使用特定的 RAILS_ENV 进行单个单元测试

ruby-on-rails - Rails 正在寻找/config/config/database.yml

ruby-on-rails - 如何将 split 与存储在变量中的正则表达式一起使用?

ruby-on-rails - Rails迁移错误