Я использую камень креветок для создания PDF-файлов моих атрибутов модели.У меня до сих пор не было проблем с этим.Однако теперь я использую Carrierwave для загрузки дополнительных файлов PDF для справки.
Carrierwave работает, как и ожидалось, так как моя модель имеет следующие изменения при загрузке дополнительного PDF:
documents: [] to [{"url"=>"/uploads/tmp/1536259407-12025-0001-8255/Amazon.com_-_Order_111-4655889-4409816.pdf"}]
Я хотел бы отобразить прикрепленный pdf на носителе (document
) для моего рендерингаPDF-креветка, используя гем comb_pdf.
Мой контроллер имеет следующий код:
respond_to do |format|
format.html
format.js
format.json
format.pdf do
order_pdf = OrderPdf.new(@order, current_user).render
final_pdf = CombinePDF.new
final_pdf << CombinePDF.parse(order_pdf)
if @order.documents.any?
@order.documents.each do |doc|
# if I comment out this line, the original pdf loads, as expected
final_pdf << CombinePDF.parse(IO.read(doc.url))
end
end
send_data final_pdf.to_pdf,
filename: "order_#{@order.id}.pdf",
type: 'application/pdf',
disposition: 'inline'
end
end
Я получаю ошибку Errno::ENOENT
(или время ожидания):
No such file or directory @ rb_sysopen - /uploads/order/documents/16/Amazon.com_-_Order_111-4655889-4409816.pdf
Для справки вот мойDocumentUploader:
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end