Я пытаюсь добавить пользовательскую ошибку к экземпляру моей модели User, но когда я позвоню вам? он очищает пользовательские ошибки и возвращает true.
[99] pry(main)> u.email = "[email protected]"
"[email protected]"
[100] pry(main)> u.status = 1
1
[101] pry(main)> u.valid?
true
[102] pry(main)> u.errors.add(:status, "must be YES or NO")
[
[0] "must be YES or NO"
]
[103] pry(main)> u.errors
#<ActiveModel::Errors:[...]@messages={:status=>["must be YES or NO"]}>
[104] pry(main)> u.valid?
true
[105] pry(main)> u.errors
#<ActiveModel::Errors:[...]@messages={}>
Если я использую метод validate
из модели, то он работает, но эта конкретная проверка добавляется из другого метода (который требует передачи параметров):
User
def do_something_with(arg1, arg2)
errors.add(:field, "etc") if arg1 != arg2
end
Из-за вышеизложенного, user.valid? возвращает true, даже когда эта ошибка добавляется в экземпляр.