Я хочу написать пользовательскую проверку в Rails 3, но, следуя этому примеру , я получаю:
'ActiveModel::DeprecatedErrorMethods.add_to_base' call is deprecated in Rails 3.0
Что такое версия rails3:
def validate errors.add_to_base "If you are attaching a file you must enter a label for it" if !attachment.blank? and attachment_label.blank? end
Это должно работать в рельсах 3.1.3:
errors.add :base, "message"
С http://apidock.com/rails/ActiveRecord/Errors/add_to_base:
Используйте model_instance.errors[:base] << "Msg" вместо устаревшего model_instance.errors.add_to_base("Msg") для Rails 3.
model_instance.errors[:base] << "Msg"
model_instance.errors.add_to_base("Msg")
Для меня этот «хак» сработал лучше всего:
instance.errors.add("", "Msg")
Когда я пытался указать "base" в качестве первого аргумента, словосочетание продолжало вставляться в мои сообщения проверки.
"base"
Попробуйте использовать в следующем формате,
ошибки [: база] << "Ваше сообщение" </p>
Он ничего не вставит перед вашими проверочными сообщениями.