2017-11-23 14 views
-1

同じテーブルのフィールドに2つの一意のインデックスを作成し、unique_constraint/3を使用してそれらを検証したいが、フロントエンドのエラーメッセージは、それらが一意でない場合。いずれのフィールドも一意でない場合、両方のエラーを表示させるにはどうすればよいですか?Ecto:2つの一意のフィールド

+2

コードを表示してください。 – mudasobwa

+0

あなたはこれを探しているかもしれません:https://stackoverflow.com/a/37859294/3142192 –

答えて

1

Changeset.unsafe_validate_unique/4を使用すると、すべての固有の検証エラーを見つけてユーザーに報告できます。 unique_constraintも、新しいレコードが挿入される前に変更されるデータの競合状態を処理するために使用する必要があります。

changeset 
|> unsafe_validate_unique([:email], MyApp.Repo, message: "email is already in use") 
|> unsafe_validate_unique([:phone], MyApp.Repo, message: "phone number is already registered") 
|> unique_constraint(:email) 
|> unique_constraint(:phone)