Я думаю, что на данный момент единственным вариантом будет следовать «обычному» пути:
добавьте include ActiveModel::Validations
и validates_with QwertieCustomValidator
к вашей модели, создайте пользовательский валидатор под app/validators
и проверьте, если record.attached_file.attached?
, если нет, добавьте ошибки с: record.errors.add(:attached_file, 'no file was attached')
Если подумать, вам не нужно указывать валидатор в другом файле, я просто сделал это в своем проекте, чтобы соответствовать потоку адаптированного проекта. Кратчайший путь будет выглядеть так:
has_one_attached :attached_file
validate :check_file_presence
def check_file_presence
errors.add(:attached_file, "no file added") unless attached_file.attached?
end
Надеюсь, это поможет вам.