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?

Foi útil?

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.)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top