Rails validates_uniqueness_of跨多个列,不区分大小写

时间:2010-02-06 23:50:14

标签: ruby-on-rails scope case-insensitive validates-uniqueness-of

我有一个有两个字段的模型,我将其称为first_name和last_name,我想确保两者的组合不区分大小写。我已经在那里使用了这个:

validates_uniqueness_of :first_name, :scope => :last_name

问题是,唯一性检查似乎区分大小写,即使the documentation表示默认情况下它应该不区分大小写。因此,鉴于现有记录:

{ :first_name => 'John', :last_name => 'Smith' }

这将被允许:

{ :first_name => 'JOHN', :last_name => 'SMITH' }

以及在名字或姓氏中有任何案例变异的任何其他记录。为什么允许这些记录?如何在两个字段中一起强制使用不区分大小写的唯一性?

1 个答案:

答案 0 :(得分:21)

你试过validates_uniqueness_of :first_name, :scope => :last_name, :case_sensitive => false吗?

documentation says默认为真。

(我认为您提供的链接是一些过时的文档.IIRC,在过去几年中,默认情况确实发生了变化。)