0
フィールドf_name、m_name、l_name、xyz_idのモデル連絡先があります。同じレコード(大文字と小文字を区別しない)がデータベースに存在するかどうかを検証したい。私は、モデル内のステートメントの次の試してみましたデータベースに重複レコードが存在するかどうかを検証する4
:
validates_uniqueness_of :f_name, scope: [:m_name, :l_name, :xyz_id], message: 'Contact already exist'
の文の上には敏感ケースを検証することができ、私の要件は、大文字と小文字を区別しません検証です。どんな提案も私には役に立ちます。ありがとう。
例:
RECORD1 - F_NAME:FNAME、L_NAME:LNAME、M_NAME:MNAME、xzy_id:1
RECORD2 - F_NAME:FNAME、L_NAME:LNAME、M_NAME:MNAMEは、xzy_id:1
をしたがって、基本的システムはrecord2をrecord1として追加し、record2には同じデータを追加するべきではありません。大文字と小文字を区別しない一意性をチェックするためにフィールドごとに個別の検証を追加すると、4つのエラーメッセージのリストが生成されます。私は
を参照してください詳細については、この
のようにそれを使用することができます「連絡先がすでに存在している」と言って、単一のメッセージを表示することを目指しています偽例えばvalidates_uniqueness_of: f_name、scope:[:m_name、:l_name、:xyz_id]、メッセージ: 'Contact already exists'、:case_sensitive => false –
case_sensitiveを追加すると、f_nameのみで大文字小文字を区別しません。しかし、スコープについては、大文字と小文字を区別してチェックします。 – Shambhu