2015-09-03 3 views
4

Представьте, что у меня есть форма, у вас есть поля электронной почты и пароля и 2 проверки: электронное письмо должно быть уникальным, а пароль не должен содержать менее 8 символов.Показывать обычные и конкретные ошибки проверки в то же время с помощью Ecto

Когда я использую Repo.Insert или Repo.update или любой другой метод, как это, я сначала получить ошибки проверки, которые не имеют ничего общего с базой данных (пароль, который имеет менее 8 символов), и только если пароль правильный, он попадет в базу данных и обнаружит, что письмо уже присутствует, и снова добавьте это в ошибки набора изменений.

Так что если пользователь отправляет форму с уже существующим электронным письмом и коротким паролем, он получит только ошибку о последнем, есть ли способ всегда ударить по базе данных, чтобы получить обычные и специфичные для базы данных ошибки в то же время?

ответ

2

Вы не можете, потому что можете получить ложные негативы, иначе это может привести к другим ошибкам. Например, если электронное письмо равно null, как мы можем его проверить, оно уникально? Фактически, ваша база данных может даже ошибочно, если вы пометили электронное письмо как NOT NULL в своей базе данных.