我正在使用Prawn gem在我的应用程序中生成PDF ...
应用/控制器/ 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文档但我什么都没发现。format.html
行,但它不起作用答案 0 :(得分:0)
当您致电pdf.render
并将其发送到send_data
的客户端时,您实际上是通过网络转储pdf的内容。您可以将pdf.render
的结果转储到包含File.new
的文件中,并在控制器中使用send_file
,而不是这样。查看File的文档。或者,您可以使用Paperclip等内容将生成的pdf附加到特定订单。
如果您将pdf生成为服务器中的文件,则应使用send_file
代替send_data
。请在guides中了解详情。
答案 1 :(得分:0)
您可以使用 Prawn 的 @pytest.fixture()
def foo():
return "foo"
@pytest.fixture()
def boo(foo):
return foo + "boo"
@pytest.fixture()
def bar(foo):
return foo + "bar"
@pytest.fixture(params=['boo', 'bar'], ids=["boo_fixture", "bar_fixture"])
def final_fixture(request):
return request.getfixturevalue(request.param)
def _test(final_fixture):
assert final_fixture.startswith('foo')
方法将生成的 PDF 保存到文件中:
render_file
查看文档:{{3}}