2016-09-08 3 views
1

Я пытаюсь получить размеры изображения скрепки. Я попытался вызвать методы width и height, применяемые к каждому из экземпляров Imagemodel, но эти возвратные ошибки.Извлечение размеров изображения скрепки

Затем я попытался получить вдохновение от этой должности: https://github.com/thoughtbot/paperclip/wiki/Extracting-image-dimensions

И немного играл в консоли со следующим:

image = Imagemodel.first 
geometry = Paperclip::Geometry.from_file(image) 

Хотя я получаю следующее сообщение об ошибке в консоли

Paperclip::Errors::NotIdentifiedByImageMagickError: 

Так что я немного смущен ... Я рад либо добавить высоту и ширину в определенные поля в моей таблице (но скорее внутри Создать действие в контроллере а не на уровне модели) или прямой доступ к измерениям в моем представлении или контроллере ...

+1

Вы уверены, что на самом деле проходит образ. У меня только что был через консоль, и я могу поднять ту же ошибку, что и вы, если файл был пустым. – DMH

+0

Вы правы. Я получил полный экземпляр модели, который включает в себя различные поля поверх фактического изображения. Я сделал «image = image.image» в консоли, и бит геометрии возвращал размер изображения, как ожидалось. Теперь я могу либо использовать в своем представлении, либо при необходимости добавить некоторые столбцы. – Maxence

+0

Удивительно, что это помогло. iv добавил в значительной степени то, что я сказал в комментарии ниже, как ответ. – DMH

ответ

2

Кажется, вы не проходите мимо изображения, но фактически сами записи.

Попробуйте это:

image = ImageModel.first.attachment # this assumes the actual image is named attachment 
geometry = Paperclip::Geometry.from_file(image) # will return e.g. => 300x357 
1

То, что работало для меня в Rails 4 был:

image = my_image_model.my_attachment.queued_for_write[:original] 
Paperclip::Geometry.from_file(image) 
Смежные вопросы