Rails validates_uniqueness_of em várias colunas com caso de insensibilidade
-
19-09-2019 - |
Pergunta
Eu tenho um modelo que tem dois campos, que chamarei first_name e last_name, e eu quero ter certeza de que a combinação dos dois são caso insensível único. Eu comecei na metade do caminho usando o seguinte:
validates_uniqueness_of :first_name, :scope => :last_name
O problema é que a verificação de exclusividade parece ser sensível a maiúsculas, mesmo que a documentação diz que deve ser insensível caso por padrão. Assim, dado um registro existente:
{ :first_name => 'John', :last_name => 'Smith' }
Esta será permitido:
{ :first_name => 'JOHN', :last_name => 'SMITH' }
Assim como qualquer registro adicional onde há qualquer variação de caso no primeiro ou último nome. Por que esses registros sendo permitido? Como posso aplicar caso singularidade insensível em ambos os campos juntos?
Solução
Você tentou validates_uniqueness_of :first_name, :scope => :last_name, :case_sensitive => false
?
A documentação do diz é verdade, por padrão.
(acho que o link que você deu é alguma documentação desatualizada. IIRC, o padrão para este fez a mudança no último par de anos.)