Отображение предупреждающего сообщения при сбое before_create? - PullRequest
2 голосов
/ 18 июля 2011

В одной из моих моделей у меня есть атрибут before_create, который устанавливает конкретное значение, извлекаемое из веб-API. Однако это before_create возвращает false, уничтожая создание модели, если при использовании API не найдено никаких результатов.

Это работает нормально, но я хотел бы также показать предупреждение, чтобы пользователи знали, что их ввод не был принят. Как бы я поступил так?

1 Ответ

4 голосов
/ 18 июля 2011

A before_create - неподходящее место для сообщения об ошибках. Ваш before_create должен попытаться установить значение, а затем валидатор должен проверить, есть ли оно, если валидатор не найдет значение, вы получите сообщение об ошибке и тому подобное. Итак, если ваш атрибут называется pancakes, то у вас будет что-то вроде этого:

before_validation :stuff_web_api_value_into_pancakes, :if => :new_record?
validates_presence_of :pancakes

Конечно, вы можете использовать другой валидатор, чем validates_presence_of, это просто для наглядности. И вам понадобится before_validation ловушка , чтобы все происходило в правильном порядке, :if => :new_record? будет запускать ловушку только при создании новой модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...