我目前正在使用 combine pdf 开发 Rails 5.2 应用程序 gem 。我正在尝试合并两个 PDF 文件,但不知何故我无法从 public
目录加载文件。
在 Controller 中我有以下方法:
def pdf_download
pdf = CombinePDF.new
pdf << CombinePDF.load("#{Rails.root}/public/pdfs/1.pdf")
pdf << CombinePDF.load("#{Rails.root}/public/pdfs/1.pdf")
pdf.save "combined.pdf"
send_data combined_file.to_pdf, filename: "combined.pdf", type: "application/pdf"
end
我在 StackOverflow 上尝试了很多帖子但没有成功,例如使用 Rails.root 。但我仍然遇到同样的错误:
Errno::ENOENT (No such file or directory @ rb_sysopen - app/public/pdfs/1.pdf):
要从 public
加载文件,我还需要进行任何其他配置吗?如果这些 PDF 不应该出现在 public
中,我应该将它们存储在哪里?
最佳答案
这为我解决了这个问题:
def pdf_download
pdf = CombinePDF.new
pdf << CombinePDF.load(Rails.root.join("public", "pdfs/1.pdf").to_s)
pdf << CombinePDF.load(Rails.root.join("public", "pdfs/2.pdf").to_s)
# pdf.save "combined.pdf"
send_data pdf.to_pdf, filename: "combined.pdf", type: "application/pdf"
end
关于ruby-on-rails - Rails 中公共(public)目录中的文件 - Errno::ENOENT (没有这样的文件或目录@ rb_sysopen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51505122/