2011-06-20 35 views
2

我有一个用户注册表单,但是当用户重新登录时,他们需要键入他们的电子邮件地址,并注册了相同的案例。我有措施来防止这种情况发生,但由于一些奇怪的原因,他们无法正常工作。案例在轨道不敏感

在用户模式:

validates :email, :presence => true, 
        :format => { :with => email_regex }, 
        :uniqueness => { :case_sensitive => false } 

email_regex = /\A[\w+\-.][email protected][a-z\d\-.]+\.[a-z]+\z/i 

这是不工作...林不知道为什么。但后来我加了另一种方法来看看它的所作所为:

before_save :downcase_fields 
def downcase_fields 
self.email.downcase 
end 

,下套管等领域,当用户在我的会话控制器,在使用这种类型的他们:

def create 
    user = User.authenticate(params[:session][:email].downcase, 
          params[:session][:password]) 
    #... 
end 

的这一切,仍产生情况敏感的电子邮件字段,当用户重新登录...帮助?

回答

2

试试这个:

self.email.downcase! 
+0

哎呀,我没有忘记 “!”。谢谢!但任何想法为什么第一部分没有完成它的工作?我很好奇 – Rymo4

+0

我的阅读是,它检查数据库中没有任何其他记录与任何情况下的相同的电子邮件,但不允许你找到电子邮件,除非它是相同的情况。 – lins314159