我有一个包含两个字段的模型,我将其称为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,默认设置在过去几年确实发生了变化。)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top