我在同一个表中的字段上创建了两个唯一索引,并希望使用unique_constraint / 3验证它们,但是,前端的错误消息仅显示任一字段,而不是两者都显示不是唯一的。如果两个字段都不唯一,我怎么能显示两个错误?
答案 0 :(得分: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)