ruby-on-rails - 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
哪里,我应该将它们存储在哪里?
解决方案
这为我修复了它:
pdf << CombinePDF.load("./public/pdfs/1.pdf")
推荐阅读
- reducers - GEE 中新定义的网格单元内不同年份的图像收集数据的总和
- asp.net-core - 使用 asp.net 核心进行属性的依赖注入
- sql - 将电话号码格式化为美国格式 (###) ###-####
- java - 何时需要 Throws 以及如何传递异常?
- python-3.x - 使用矩阵乘法进行 Scipy 优化
- c# - 是否可以动态更改 ToolbarItem 的图标?
- powershell - 比较对象返回意外结果
- java - Android/Java:如何获取 ArrayList
从一个活动到另一个? - java - 如何解决此错误?您需要调用 ParameterRegistration#enablePassingNulls(true) 以传递空参数
- mysql - Mysql - 查询以显示两个链接表的单个记录,其条件仅在其中一个