ケース非感受性で複数のカラムにvalidates_uniqueness_ofレール
-
19-09-2019 - |
質問
私はFIRST_NAMEとLAST_NAMEを呼び出す2つのフィールドが、持っているモデルがあり、私は2つの組み合わせでは、大文字と小文字を区別せずに一意であることを確認します。私はこれを使って、途中であり得てます:
validates_uniqueness_of :first_name, :scope => :last_name
問題は、一意性チェックは、大文字と小文字を区別することにもかかわらず、<のhref =「http://ar.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html#M000086」のrel =「noreferrer」ように見えるということです>ドキュメントには、デフォルトでは大文字と小文字を区別する必要がありますと言います。だから、既存のレコードを与えます:
{ :first_name => 'John', :last_name => 'Smith' }
これは許可されます:
{ :first_name => 'JOHN', :last_name => 'SMITH' }
と同様に最初または最後の名前におけるケースのばらつきがある任意の追加レコード。なぜ、これらのレコードは許可されていますか?私は一緒に両方のフィールド間で大文字小文字を区別しない一意性を強制する方法を教えてください。
解決
あなたはvalidates_uniqueness_of :first_name, :scope => :last_name, :case_sensitive => false
を試してみましたか。
ドキュメントはそれがデフォルトでtrueですを言います。
(私はあなたが与えたリンクは、いくつかの時代遅れのドキュメントにあると思います。IIRC、これのデフォルトは、ここ数年で変化しなかった。)
所属していません StackOverflow