这可能更多地是一个设计或使用问题,但主要问题是使用带有Rails 2.3.4的Prawn插件,并访问生成的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文件以响应/customers/1.pdf,就像预期的那样,生成一个PDF文件。
其他要求之一是将pdf呈现到文件中,并将副本存储在服务器上。对虾提供的方法:pdf.render_file {path_tofile}
因此,如果我在View代码中包括了这个内容,我当然可以将文件保存在服务器上。但是我想在控制器中管理它,因为它与逻辑有关,而不是视图本身。
第一次尝试是:
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。我怀疑Controller实例变量与Prawnto插件pdf变量发生冲突。但是,即使更改PDF变量也不起作用。有什么建议吗?
发布于 2009-12-17 10:06:07
这就是我在rails应用程序中使用对虾的方式:http://yob.id.au/2009/05/30/prawn-and-x-accel-redirect.html --它根本不使用对虾。
除非使用nginx,否则可以忽略X重定向的内容。
或者,另一个对虾核心开发人员将本指南组合在一起:http://wiki.github.com/sandal/prawn/using-prawn-in-rails。
https://stackoverflow.com/questions/1919533
复制相似问题