【发布时间】:2017-02-01 15:06:55
【问题描述】:
我正在使用 Prawn gem 在我的应用程序中生成 PDF...
app/controllers/orders.rb
class OrdersController < ApplicationController
...
def show
respond_to do |format|
format.html
format.pdf do
require "prawn/measurement_extensions"
...
#render pdf document
send_data pdf.render,
filename: "order_#{@order.id}.pdf",
type: 'application/pdf',
disposition: 'inline'
end
end
end
...
end
而且它的显示效果很好,但是我的问题是......
- 在成功创建
order后,如何 - 自动 - 将这些生成的 pdf 保存在公用文件夹(每天的文件夹)中?我试过搜索 Prawn Documentation 但我什么也没找到。 - 如何仅以 pdf 格式显示订单?我尝试评论
format.html行,但没有成功
【问题讨论】:
-
如果您 a) 曾经想要运行多个服务器或 b) 在 heroku 上运行,则不需要将内容存储在特定服务器上的公用文件夹中。您希望使用像 S3 这样的文件存储系统,您的所有服务器都可以在其中访问文件,并且文件在重新启动之间保持不变。如果您不关心,只需使用 ruby File 方法将 pdf.render (内容)写入磁盘。如果您确实关心跨服务器更改进行持久化,请查看 github.com/thoughtbot/paperclip,您可以在其中持久化文件并将它们与应用程序中的模型相关联
-
@JohnNaegle 我现在要做的是在创建订单后保存 PDF 发票,以便以后查看。你能告诉我实现这一目标的最佳方法是什么吗?
标签: ruby-on-rails ruby-on-rails-4 pdf prawn