Frage

Ich habe ein Modell, das zwei Felder hat, die ich first_name und last_name nennen, und ich möchte sicherstellen, dass die Kombination der beiden Fall-unsensibel einzigartig sind. Ich habe auf halbem Weg dorthin gekommen durch diesen mit:

validates_uniqueness_of :first_name, :scope => :last_name

Das Problem ist, dass die Einzigartigkeit Prüfung Groß- und Kleinschreibung zu sein scheint, obwohl die Dokumentation sagt es Groß- und Kleinschreibung standardmäßig sein sollte. So einen vorhandenen Datensatz gegeben:

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

Dies wird erlaubt:

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

Neben jedem zusätzlichen Datensatz, in dem es eine Variation von Fall entweder in dem ersten oder Nachnamen. Warum werden diese Aufzeichnungen erlaubt? Wie kann ich Groß- und Kleinschreibung Einzigartigkeit über beiden Felder zusammen?

erzwingen
War es hilfreich?

Lösung

Haben Sie versucht, validates_uniqueness_of :first_name, :scope => :last_name, :case_sensitive => false?

Die Dokumentation sagt es standardmäßig wahr ist.

(ich glaube, der Link gab einige veraltete Dokumentation. IIRC, die Standardeinstellung für das hat in den letzten paar Jahren ändern.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top