Что такое Rails3-версия error.add_to_base? - PullRequest
37 голосов
/ 20 января 2011

Я хочу написать пользовательскую проверку в 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

Ответы [ 4 ]

44 голосов
/ 22 декабря 2011

Это должно работать в рельсах 3.1.3:

errors.add :base, "message"
38 голосов
/ 20 января 2011

С http://apidock.com/rails/ActiveRecord/Errors/add_to_base:

Используйте model_instance.errors[:base] << "Msg" вместо устаревшего model_instance.errors.add_to_base("Msg") для Rails 3.

3 голосов
/ 22 апреля 2011

Для меня этот «хак» сработал лучше всего:

instance.errors.add("", "Msg")

Когда я пытался указать "base" в качестве первого аргумента, словосочетание продолжало вставляться в мои сообщения проверки.

0 голосов
/ 21 марта 2013

Попробуйте использовать в следующем формате,

ошибки [: база] << "Ваше сообщение" </p>

Он ничего не вставит перед вашими проверочными сообщениями.

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