Привет всем, я новичок в рельсах, я пытаюсь загрузить PDF-файл, и я использую функцию создания и проверки только для приема PDF-файлов, но мне нужно принимать только файлы, размер которых меньше или равен 1 МБ .iam, используя рельсы 6 с активным хранилищем
мой контроллер:
class Pdf < ApplicationRecord
after_commit :attachment1
#after_commit(on: %i[ create update ]) { attachment_changes.delete(name.to_s).try(:upload) }
before_commit :check_file_type
has_one_attached :attachment
validate :check_file_type , :size_validation1
#validates :attachment, presence: true, blob: { content_type: ['application/pdf'] }
#validates :attachment, presence: true, size: { less_than: 1.megabytes , message: 'PDF should be less than 1MB' }
validates :attachment,
content_type: [:pdf],
size: { less_than: 1.megabytes , message: 'must be less than 2MB in size' }
def attachment1
attachment_path = "#{Dir.tmpdir}/#{attachment.filename}"
File.open(attachment_path, 'wb') do |file|
file.write(attachment.download)
end
def size_validation
if attachment.attached? && attachment.byte_size > 1000000
errors.add(:attachment, 'PDF must be less than 1MB')
end
end
private
def check_file_type
if attachment.attached? && !attachment.content_type.in?(%w(application/pdf))
errors.add(:attachment, 'Must be a PDF or a DOC file')
end
end
def size_validation1
errors[:attachment] << "should be less than 1 mb" if attachment.size > <1000000>
end
end
end