Объедините PDF и креветки - PullRequest
       8

Объедините PDF и креветки

0 голосов
/ 11 сентября 2018

Я использую камень креветок для создания 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
...