0

我在产品控制器索引方法中有这段代码:

  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

运行程序时出现错误

“笔”的未定义方法“每个”:字符串

4

2 回答 2

2

啊哈。根据PDF::Writer 的主页,“PDF::WRITER 已于 2010 年 4 月 15 日停产。请使用其精神继承者,PRAWN。”

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

于 2013-04-09T18:56:27.913 回答
1

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

于 2016-11-25T20:36:19.737 回答