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?
будет запускать ловушку только при создании новой модели.