ruby-on-rails - Rails 中公共(public)目录中的文件 - Errno::ENOENT (没有这样的文件或目录@ rb_sysopen

标签 ruby-on-rails ruby pdf controller

我目前正在使用 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/

相关文章:

javascript - 有没有办法使用 <Component/> 在 ERB 中呈现 React 组件?

ruby-on-rails - 自定义 Rails 中的每个循环

ruby-on-rails - 为什么 twitter 不能像 facebook 这样的网站那样通过添加服务器来扩展规模?

java - PDFBox 命令行选项无法使用有效用户密码解密 PDF 文件

sql - 您可以在联接期间更改 where 子句中的列值吗?

ruby - 两个时间实例之间的天数

ruby - 无法使用 gem "pg"从我的 Ruby 脚本连接到 Postgres (pg) 数据库(这不是 rails,只是纯 ruby​​)

ios - Xcode生成不同颜色的png格式pdf

php - 使用 dompdf 从数据库渲染数据时出错

jquery - 试图让我的 jquery 代码了解我的唯一 ID