轨道3中的PDF生成器

时间:2013-04-09 17:48:29

标签: ruby-on-rails

我在产品控制器中的代码索引方法:

  def index

    @products = Product.all

    respond_to do |format|
      format.html
      format.pdf do
        pdf = PDF::Writer.new
        @products.each do |product|
          pdf.text product.name 
        end        
        send_data pdf.render, :filename => 'products.pdf', :type => 'application/pdf', :disposition => 'inline'
      end
    end   
  end

并且在 environment.rb文件

require 'pdf/writer'

Mime::Type.register 'application/pdf', :pdf

在运行程序时,我收到错误

  

未定义的方法`each'代表“Pen”:String

2 个答案:

答案 0 :(得分:1)

啊哈。根据{{​​3}},“PDF :: WRITER已于2010年4月15日中止。请使用它的精神继承人,PRAWN INSTEAD。”

我个人非常高兴使用prawn生成PDF文件。但是为了直接回答你的问题,我的猜测是你可能正在使用ruby 1.9.x,它稍微改变了String API,而PDF :: Writer则用于ruby 1.8.7。

答案 1 :(得分:0)

使用metaskills-pdf-writer gem。发生此错误是因为Ruby 1.8上的每个字符串方法在版本1.9中已更改。所以这不再适用于新版本的ruby。我提到的这个宝石将解决这个问题。