質問

私は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、これのデフォルトは、ここ数年で変化しなかった。)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top