2016-10-13 12 views
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つのエラーメッセージのリストが生成されます。私は

+0

を参照してください詳細については、この

validates_uniqueness_of :f_name, scope: [:m_name, :l_name, :xyz_id], message: 'Contact already exist', case_sensitive: false 

のようにそれを使用することができます「連絡先がすでに存在している」と言って、単一のメッセージを表示することを目指しています偽例えばvalidates_uniqueness_of: f_name、scope:[:m_name、:l_name、:xyz_id]、メッセージ: 'Contact already exists'、:case_sensitive => false –

+0

case_sensitiveを追加すると、f_nameのみで大文字小文字を区別しません。しかし、スコープについては、大文字と小文字を区別してチェックします。 – Shambhu

答えて

0

あなたはあなたでは大文字と小文字を区別しを行うことができ、このlink.

関連する問題