代码之家  ›  专栏  ›  技术社区  ›  Jimmy Nitzan Tomer

Rails通过不区分大小写验证多个列的唯一性

  •  14
  • Jimmy Nitzan Tomer  · 技术社区  · 15 年前

    我有一个模型,有两个字段,我称之为名字和姓氏,我想确保这两个字段的组合是不区分大小写的唯一。我用这个已经走到一半了:

    validates_uniqueness_of :first_name, :scope => :last_name
    

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

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

    允许这样做:

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

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

    1 回复  |  直到 15 年前
        1
  •  21
  •   Luke Francl    15 年前

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

    这个 documentation says 默认情况下是真的。

    (我认为你提供的链接是一些过时的文档。IIRC,这方面的默认值在过去几年确实发生了变化。)

    推荐文章