Для этого вам нужно написать собственный валидатор. Все, что вам нужно сделать, это подкласс ActiveModel::Validator
и реализовать метод validate(record)
, который добавляет к хэшу записи errors
в случае ошибки:
class YourValidator < ActiveModel::Validator
def validate(record)
if (your_failure_condition_here)
record.errors[:base] << "Your error message"
end
end
end
А затем используйте валидатор в вашей модели следующим образом (при условии, что вы правильно загрузили свой класс валидатора):
class YourModel
validates_with YourValidator
end