2017-11-23 6 views
-1

동일한 테이블의 필드에 두 개의 고유 인덱스를 만들고 unique_constraint/3을 사용하여 유효성을 검사하려고했지만 프런트 엔드의 오류 메시지는 두 필드 모두에서 표시되는 것이지 양쪽 필드 모두에서 표시되지 않습니다 고유하지 않은 경우. 어느 필드도 고유하지 않으면 두 오류를 모두 표시 할 수 있습니까?Ecto : 두 개의 고유 한 필드

+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)