Как отображать сообщения об ошибках для электронной почты пользователя в форме, если не сохраняется запись

#ruby-on-rails-3 #forms

#ruby-on-rails-3 #формы

Вопрос:

Есть ли способ добавить сообщения об ошибках в атрибут и отобразить их в форме, не пытаясь сохранить объект.

Менеджер может пожелать изменить адрес электронной почты пользователя, назначенного проекту.

Если они меняют адрес электронной почты на адрес другого пользователя, который уже назначен проекту, я хочу добавить ошибку в атрибут электронной почты пользователя и отобразить ее.

В этом случае я бы не стал сохранять запись или обновлять ее, я бы просто вернулся к форме и показал ошибку.

Я просто делаю

 @user.add(:email, "This user is already assigned to this project")
 

Я не запускаю @user.save или @user.update_attribute, в этом случае этот пользователь не обновляется, а назначается проекту.

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

Возможно ли это?

Ответ №1:

Конечно, вызовите valid? модель.

Комментарии:

1. Привет, Дейв, хотел бы это сделать. Однако при проверке моей модели я не знаю, как проверить, назначен ли пользователь проекту. Модель проекта является отдельной.

2. Есть несколько способов, в зависимости от того, как вы их связали. Вы могли бы просто посмотреть вручную, проверить наличие действительного идентификатора проекта у пользователя и т.д.