Я пытаюсь написать метод, который использует камень EXIFR для извлечения данных (в данном случае модели камеры) о фотографиях по мере их загрузки с использованием Carrierwave. В настоящее время метод я использую внешний вид, как это в моей модели:Carrierwave нет такого файла или каталога
before_save :get_exif_data
def get_exif_data
imgfile = EXIFR::JPEG.new(photo.filename)
return
self.model = imgfile.model
end
Однако я получаю сообщение об ошибке «Нет такого файла или каталога - IMG_0953.JPG» (или другое имя файла).
Моя цель состоит в том, чтобы извлечь данные типа «камера», используя метод моделирования модели EXIFR перед сохранением. Из документации EXIFR гема:
EXIFR::JPEG.new('IMG_6841.JPG').model # => "Canon PowerShot G3"
ошибки подсказывает мне, что мой photo.filename до сих пор не создан. Как я могу обработать изображение до его сохранения?
Я считаю, что «правильный» способ - использовать «current_path». Вы хотите сделать это в загрузчике CarrierWave. Ознакомьтесь с моим модулем [carrierwave-imagesize] (https://github.com/mdchaney/CarrierWave-ImageSize) для получения дополнительной информации. –
Спасибо за подсказку, Майкл. Мне было интересно, можно ли позаботиться об этом в загрузчике. Я проверю вашу ссылку. –