Мне нравится создавать PDF-файлы, которые также включают изображения, загруженные пользователем. Креветка драгоценных камней работает до сих пор и может также вставлять изображения, расположенные в файловой системе. Моя проблема заключается в том, что я хочу включать загруженные пользователем изображения и где эти изображения будут храниться, вероятно, изменится в будущем (от файловой системы до некоторой облачной службы). Я использую драгоценный камень стрекозы для обработки изображений, это использует стойку для доступа к изображениям и иногда обрабатывает их на лету.Prawn PDF: как добавить изображения, загруженные с помощью dragonfly
Теперь Простейшая идея не работает (с report
быть моим объектом и spot_image
поля моего изображения)
image report.spot_image
no implicit conversion of #<Class:0x007fc07ecf1110> into String
Я пытался также открыть файл через HTTP с открытой Uri. Это должно работать, но это блоки на моей машине развития, я думаю, потому что сервер рельсы развития однопоточно:
image_path = report.spot_image.remote_url
image_url = "#{view.request.protocol}\#view.request.host_with_port}
/#{image_path.sub(/^\//,"")}"
image open(image_url) # timeout in development-mode
Это, вероятно, может работать в производстве, но даже тогда он делает ненужную HTTP-запрос. Могу ли я спросить стрекоза (или стойка) непосредственно для изображения? prawn использует утиную печать и нуждается в некотором объекте, который отвечает за read
и rewind
как изображение.
'Возможно, он работает в производстве, но даже тогда он делает ненужный http-запрос' - что вы подразумеваете под ненужным? Если его удаленное изображение, чем какой-либо компонент, должно будет выполнить HTTP-запрос, чтобы извлечь его для вставки –