这可能是更多的设计或使用的问题,但主要问题是使用虾插件与轨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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top