моей Post
модели:
mount_uploaders :attachments, AttachmentUploader
Rails Carrierwave: Как уменьшить размер вложений от 7-15Mb до 7Мб
У меня есть текущие цели:
- Если вложение Фото и размер файла от 7 до 15 мб. Carrierwave должен уменьшить размер до мб.
- Если вложение - это фото и размер файла больше 10 МБ, я должен выбросить ошибку.
- Если вложение - это видео и размер файла превышает 200 МБ, я должен выбросить ошибку.
Пытался сделать это в News
модели:
validate :file_size
def file_size
attachments.each do |attachment|
extn = attachment.content_type
size = attachment.size
if ["image/png", "image/jpg", "image/jpeg"].include?(extn) && size > 7.megabytes.to_f
errors.add(:attachment, "Max Photo size is 7MB")
elsif ["application/mp4", "application/mov"].include?(extn) && size > 200.megabytes.to_f
errors.add(:attachment, "Max video size is 200MB")
end
end
end
Что только подтверждает размер, но не уменьшить размер, если он превышает 7MB.