ruby-on-rails - 将 PDF 与活动存储相结合
问题描述
我正在尝试将多个 pdf 合并到一个可下载的文件中。我有一个带有多个房间名称的模型,并且电子邮件房间附有一个 pdf,它是房间的布局。目标是能够根据房间列表下载所有房间布局。我找到了 gem combine_pdf,它看起来很棒,很简单,但我觉得我错过了一些东西。我得到很多“没有这样的文件或目录@rb_sysopen -”但是当我剪切并粘贴以下链接时,它工作正常。
当前代码
def index
@forms = Form.all
@forms.each do |form|
pdf = CombinePDF.new
pdf << CombinePDF.load(url_for(form.image))
end
end
我没有下载部分,但文档说使用 send_data combined_file.to_pdf,文件名:“combined.pdf”,输入:“application/pdf”
但是我如何从控制器访问视图并使其可下载?
更新:我能够使用以下代码通过所有错误。但我不知道如何创建下载链接
def index
@forms = Form.all
@pdf = CombinePDF.new
@forms.each do |form|
file = open('http://evanliewer.com/orientation/test.pdf')
@pdf << CombinePDF.load(file.to_path)
end
@pdf.save "combined.pdf"
end
解决方案
能够弄清楚。下面是控制器:
require 'net/http'
def viewproject
@forms = Form.all
respond_to do |format|
format.html
format.pdf do
pdf = CombinePDF.new
@forms.each do |form|
pdf << CombinePDF.parse( Net::HTTP.get( URI.parse( url_for(form.image.service_url) ) ) )
end
send_data pdf.to_pdf, :disposition => 'inline', :type => "application/pdf"
end
end
结尾
视图是
<%= link_to "Printable Receipt (PDF)", cabinpdf_path(@forms, format: 'pdf', disposition: "attachment") %>
我现在要回去清理它,但很高兴我能得到它。我之前错过的两个秘密是,如果您使用 .service_url 来查找 url 的活动记录调用效果最好,我使用 require 'net/http' 以这种方式访问它,因为路径不工作,因为它没有存储本地。它目前不适用于我的本地(使用那里的本地存储),但正在使用 heroku 进行生产。
推荐阅读
- css - 如何测试页面上使用了哪个@font-face unicode-code 版本?
- javascript - 从不同组件切换活动/非活动类角度
- scala - 是否可以在 Spark 阶段重新排序任务
- linux - IP 地址“XX.XX.XX.XX”的 RSA 主机密钥不在已知主机列表中
- android - 按钮在片段中不能立即工作
- java - Spring MVC 视图控制器重定向
- python - Visual Studio IntelliCode 不预测方法和变量
- python - Python按键删除列表中的字典
- mercurial - 是否可以通过 pretxncommit 钩子或任何其他方法将新文件添加到 mercurial 提交?
- indexing - 如何在 Solr/Lucene 中索引类型关系