我正在使用虾宝石来生成我的模型属性的pdf。到目前为止,我对此还没有任何问题。但是,我现在正在使用Carrierwave上传其他PDF供参考。
Carrierwave可以正常工作,因为我的模型在上传其他PDF时具有以下更改:
documents: [] to [{"url"=>"/uploads/tmp/1536259407-12025-0001-8255/Amazon.com_-_Order_111-4655889-4409816.pdf"}]
我想使用Combine_pdf gem将附加的载波pdf(document
)渲染到渲染的虾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