Rails validates_uniqueness_of across multiple columns with case insensitivity

谁都会走 提交于 2019-12-21 03:33:11

问题


I have a model that has two fields, which I will call first_name and last_name, and I want to make sure that the combination of the two are case-insensitively unique. I've gotten halfway there by using this:

validates_uniqueness_of :first_name, :scope => :last_name

The problem is that the uniqueness check seems to be case sensitive, even though the documentation says it should be case insensitive by default. So given an existing record:

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

This will be allowed:

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

As well as any additional record where there is any variation of case in either the first or last name. Why are these records being allowed? How can I enforce case insensitive uniqueness across both fields together?


回答1:


Did you try validates_uniqueness_of :first_name, :scope => :last_name, :case_sensitive => false?

The documentation says it's true by default.

(I think the link you gave is to some outdated documentation. IIRC, the default for this did change in the last couple of years.)



来源:https://stackoverflow.com/questions/2215237/rails-validates-uniqueness-of-across-multiple-columns-with-case-insensitivity

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!