我有一个模型,有两个字段,我称之为名字和姓氏,我想确保这两个字段的组合是不区分大小写的唯一。我用这个已经走到一半了:
validates_uniqueness_of :first_name, :scope => :last_name
问题是唯一性检查似乎区分大小写,即使 the documentation 表示默认情况下应该不区分大小写。因此,给出了一个现有的记录:
{ :first_name => 'John', :last_name => 'Smith' }
允许这样做:
{ :first_name => 'JOHN', :last_name => 'SMITH' }
以及在名字或姓氏中有任何案例变化的任何附加记录。为什么允许这些记录?如何在两个字段之间强制使用不区分大小写的唯一性?
你试过吗? validates_uniqueness_of :first_name, :scope => :last_name, :case_sensitive => false 是吗?
validates_uniqueness_of :first_name, :scope => :last_name, :case_sensitive => false
这个 documentation says 默认情况下是真的。
(我认为你提供的链接是一些过时的文档。IIRC,这方面的默认值在过去几年确实发生了变化。)