я взял тот бложек-пример из «Getting Started with Rails» и сделал 3 мелких изменения: сделал тэг для поста необходимым (presence => true), сказал не отрезать пустые теги (удалил reject blank..) и добавил инспект ошибок в форме создания поста. и получил то чего хотел: пост не создается если не указан тег.
картинка — http://rghost.ru/50169098/image.png
что здесь мне нравится: ошибка после валидации асоциации всплыла/доступна через full_messages.
я тут пишу некое приложение и у меня не получается добиться такого же эффекта.
p customer.errors.inspect
p customer.errors.full_messages.inspect
logger.debug('customer errors: ' + customer.errors.to_a.to_s)
logger.debug('customer script errors: ' + customer.scripts.last.errors.to_a.to_s)
logger.debug('instance errors: ' + customer.scripts.last.instances.last.errors.to_a.to_s)
logger.debug('FM: ' + customer.errors.full_messages.to_s)
"#<ActiveModel::Errors:0xa7dbbf8 @base=#<Customer id: 3, email: \"1231@ya.ru\", notes: nil, created_at: \"2013-11-14 12:18:55\", updated_at: \"2013-11-14 12:18:55\">, @messages={:scripts=>[\"translation missing: ru.activerecord.errors.models.customer.attributes.scripts.invalid\"]}>"
"[\"Scripts translation missing: ru.activerecord.errors.models.customer.attributes.scripts.invalid\"]"
...
customer errors: ["Scripts translation missing: ru.activerecord.errors.models.customer.attributes.scripts.invalid"]
customer script errors: ["script.errors.e2"]
instance errors: []
FM: ["Scripts translation missing: ru.activerecord.errors.models.customer.attributes.scripts.invalid"]
подскажите где подвох?