respond_to 生成 2 个或更多 pdf
respond_to generate 2 or more pdfs
我正在使用 rails 和 prawn pdf 生成 pdf 格式的报告
我想问一下是否可以从一个控制器生成 2 个或更多 pdf 文档(我正在使用 respond_to 生成 pdf)
下面是我目前只能生成一个pdf的控制器,
我需要为所有者和最终用户创建不同格式的 pdf
谢谢
def show
@family = Family.find(params[:id])
respond_to do |format|
format.html
format.pdf do
pdf = familyPdf.new(@family)
send_data pdf.render, filename: "family_#{@family.father_name}.pdf",
type: "application/pdf",
disposition: "inline"
end
end
end
您可以使用 if/else 语句
def show
@family = Family.find(params[:id])
respond_to do |format|
format.html
format.pdf do
if current_user.is_owner?
pdf = familyPdf.new(@family)
send_data pdf.render, filename: "family_#{@family.father_name}.pdf",
type: "application/pdf",
disposition: "inline"
return
else
...
code for formatting pdf for end user goes here
...
end
end
end
end
您一次只能下载一个文件。要在一次操作中生成并发送多个文件,您必须将它们合并到 zip 文件夹中。要生成 zip 文件,您可以使用 rubyzip gem https://github.com/rubyzip/rubyzip
这里也有一篇很好的文章可以做到这一点 http://thinkingeek.com/2013/11/15/create-temporary-zip-file-send-response-rails/
我正在使用 rails 和 prawn pdf 生成 pdf 格式的报告
我想问一下是否可以从一个控制器生成 2 个或更多 pdf 文档(我正在使用 respond_to 生成 pdf)
下面是我目前只能生成一个pdf的控制器, 我需要为所有者和最终用户创建不同格式的 pdf
谢谢
def show
@family = Family.find(params[:id])
respond_to do |format|
format.html
format.pdf do
pdf = familyPdf.new(@family)
send_data pdf.render, filename: "family_#{@family.father_name}.pdf",
type: "application/pdf",
disposition: "inline"
end
end
end
您可以使用 if/else 语句
def show
@family = Family.find(params[:id])
respond_to do |format|
format.html
format.pdf do
if current_user.is_owner?
pdf = familyPdf.new(@family)
send_data pdf.render, filename: "family_#{@family.father_name}.pdf",
type: "application/pdf",
disposition: "inline"
return
else
...
code for formatting pdf for end user goes here
...
end
end
end
end
您一次只能下载一个文件。要在一次操作中生成并发送多个文件,您必须将它们合并到 zip 文件夹中。要生成 zip 文件,您可以使用 rubyzip gem https://github.com/rubyzip/rubyzip
这里也有一篇很好的文章可以做到这一点 http://thinkingeek.com/2013/11/15/create-temporary-zip-file-send-response-rails/