Ответ 1
Это должно работать в рельсах 3.1.3:
errors.add :base, "message"
Я хочу написать пользовательскую проверку в 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.
Для меня этот "взлом" работал лучше всего:
instance.errors.add("", "Msg")
Когда я попытался указать "base"
в качестве первого аргумента, база слов продолжала вставляться в мои сообщения проверки.
Попробуйте использовать в нижнем формате,
ошибки [: base] < "Ваше сообщение"
Он не будет вставлять ничего перед вашими сообщениями проверки.