Rails 跨多列验证唯一性,不区分大小写
-
19-09-2019 - |
题
我有一个包含两个字段的模型,我将其称为first_name 和last_name,并且我想确保两者的组合不区分大小写是唯一的。我通过使用这个已经完成了一半:
validates_uniqueness_of :first_name, :scope => :last_name
问题是唯一性检查似乎区分大小写,即使 文档 说默认情况下应该不区分大小写。因此,鉴于现有记录:
{ :first_name => 'John', :last_name => 'Smith' }
这将被允许:
{ :first_name => 'JOHN', :last_name => 'SMITH' }
以及名字或姓氏中存在大小写变化的任何其他记录。为什么允许这些记录?如何在两个字段之间强制执行不区分大小写的唯一性?
解决方案
你试过了吗 validates_uniqueness_of :first_name, :scope => :last_name, :case_sensitive => false
?
这 文件说 默认情况下是这样。
(我认为您提供的链接是一些过时的文档。IIRC,默认设置在过去几年确实发生了变化。)
不隶属于 StackOverflow