2013-04-09 209 views
0

這段代碼我有產品控制器指數法:PDF生成器3

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'for「Pen」:字符串

+1

你使用的是什麼版本的ruby,rails和PDF :: Writer?哪行代碼拋出錯誤? – sockmonk 2013-04-09 17:55:18

+0

我正在使用rails 3.2.12,並在gem文件中添加了gem'pdf-writer'我在@ products.each中收到錯誤|產品|作爲「每個」未定義的方法「筆」:字符串「 – jeevaweb 2013-04-09 18:09:21

回答

1

啊哈。根據PDF::Writer's home page,「PDF :: WRITER已於2010年4月15日停止使用,請使用其精神上的繼承者,不要使用它。」

我個人很高興使用蝦來生成PDF的。但爲了直接回答你的問題,我的猜測是你可能使用了ruby 1.9.x,它稍微改變了String API,而PDF :: Writer是爲Ruby 1.8.7而設計的。

0

使用metaskills-pdf-writer gem。發生這個錯誤是因爲Ruby 1.8上的每個字符串方法在版本1.9上都發生了變化。所以這不再適用於新版本的Ruby。我提到的這個寶石將解決這個問題。