使用虾&Prawnto于轨PDF代
-
20-09-2019 - |
题
这可能是更多的设计或使用的问题,但主要问题是使用虾插件与轨2.3.4和访问所得PDF对象渲染这一文件。
该方案基本上是;
- 一个控制器与respond_to块设置
- 图码渲染的文本、图像等PDF
它看起来像:
从客户控制器
def show
@customer = Customer.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @customer }
format.pdf { render :layout => false }
end
从客户查看
pdf.text "Hello World"
pdf.text "Customer is #{@customer.name}"
该工作良好,产生一份PDF文件,在响应/客户/1.pdf格式,作为预期的PDF文件正在产生。
一的其他要求是呈现的pdf文件和储存的副本的服务器。虾提供了方法:pdf.render_file {path_tofile}
因此,现在如果包括这样的代码,我当然可以将文件保存在服务器上。但我想要管理这个控制器,因为它相关的逻辑,不视本身。
第一次尝试是:
def show
@customer = Customer.find(params[:id])
@pdf = Prawn::Document.new()
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @customer }
format.pdf { render :layout => false }
pdf.render_file {path_to_file}
end
从客户查看
pdf.text "Hello World"
pdf.text "Customer is #{@customer.name}"
的问题
这个问题的尝试是PDF不是呈现。我怀疑所控制的实例可变为冲突的Prawnto插件 pdf
变量。但是,即使改变PDF变量没有工作。任何建议?
解决方案
这是我的使用虾我的轨道应用程序: http://yob.id.au/2009/05/30/prawn-and-x-accel-redirect.html -它不使用prawnto。
你可以忽略的X-Accel-重新定向的东西除非你使用服务.
或者,另一个虾核心的开发者已经把这个指南: http://wiki.github.com/sandal/prawn/using-prawn-in-rails
不隶属于 StackOverflow