首页 > 解决方案 > Rails 中公共目录中的文件 - Errno::ENOENT(没有这样的文件或目录 @ rb_sysopen

问题描述

我目前正在使用combine pdf gem 开发 Rails 5.2 应用程序。我正在尝试合并两个 PDF 文件,但不知何故我无法从public目录中加载文件。

在控制器中,我有以下方法:

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哪里,我应该将它们存储在哪里?

标签: ruby-on-railsrubypdfcontroller

解决方案


这为我修复了它:

pdf << CombinePDF.load("./public/pdfs/1.pdf")

推荐阅读