我有一个简单的测试来执行。以下是以下代码:
it 'should validate that email is lowercase' do
account = build(:account, email: 'IRONMAN@gmail.com')
lowercase_account = build(:account, email: 'warmachine@gmail.com')
account.wont_be :valid?
lowercase_account.must_be :valid?
end
根据我的测试,IRONMAN@gmail.com
应该失败并且warmachine@gmail.com
应该通过。但是,当我运行测试时,两封电子邮件都通过了。
以下是我的Account
模型的验证码。
validates :email, presence: :true, length: { in: 3..100 }, uniqueness: true,
confirmation: true, email_format: true, allow_blank: false
validates :email_confirmation, email_format: true, presence: true, allow_blank: false, on: :create
这里的错误是什么?我已在SO上引用此链接作为起点Rails 4 validation case insensitivity test。它有一些很好的信息,但我使用Postgresql而不是MySQL来执行帐户插入。据我所知,Postgresql没有进行不区分大小写的搜索,所以我应该很好。有没有人遇到过这个问题?
答案 0 :(得分:2)
区分大小写并不意味着所有内容都必须小写才有效,这意味着您可以收到两封电子邮件,例如hello@example.com
和HELLO@example.com
。
如果区分大小写设置为false,则您无法hello@example.com
和HELLO@example.com