Domanda

Ho un modello che ha due campi, che chiamerò first_name e last_name, e voglio fare in modo che la combinazione dei due sono caso-insensitively unico. Ho ottenuto a metà strada utilizzando questo:

validates_uniqueness_of :first_name, :scope => :last_name

Il problema è che il controllo di unicità sembra essere maiuscole e minuscole, anche se la documentazione dice che dovrebbe essere case insensitive per impostazione predefinita. Quindi, dato un record esistente:

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

Questa sarà consentito:

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

Così come qualsiasi record ulteriore in cui v'è una variazione di caso sia nel nome o il cognome. Perché sono consentiti questi record? Come posso far rispettare caso unicità insensitive attraverso entrambi i campi insieme?

È stato utile?

Soluzione

Hai provato validates_uniqueness_of :first_name, :scope => :last_name, :case_sensitive => false?

La documentazione dice che è vero per impostazione predefinita.

(credo che il link che hai dato è in una certa documentazione ormai obsoleti. IIRC, il valore predefinito per questo è cambiato negli ultimi due anni).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top