使用prawn时显示未初始化的常量Prawn :: FLOAT_PRECISION错误

时间:2015-02-23 07:49:57

标签: ruby-on-rails prawn

我采用了Railscast第153集修订的方法 我的控制器是

class AdminsController < ApplicationController  

  def index    
    @examples = Example.all  
    respond_to do |format|  
      format.html  
      format.csv { send_data @examples.to_csv }  
      format.xls { send_data @examples.to_csv }  
      format.pdf do  
        pdf = DownloadPdf.new(@examples)  
        send_data pdf.render, filename: 'generate_table.pdf',   
            type: 'application/pdf', disposition: "inline"  
      end  
    end  
  end  
end 

我的download_pdf.rb文件是

class DownloadPdf < Prawn::Document#make_table  

    require 'prawn/table'  
    def initialize(example)  
    super()  
        @examples = example  
        line_items  
    end

    def line_items  

    image "#{Rails.root}/app/assets/images/logo.png"      
    table [[1,2],[3,4]]  
  end  
end   

我正在使用宝石

gem 'prawn', :git => "https://github.com/prawnpdf/prawn.git", :ref => '8028ca0cd2'  
gem 'prawn-table', '~> 0.1.0'

Thanx提前帮助。

3 个答案:

答案 0 :(得分:2)

TL; DR :更新prawn gem,方法是将其添加到您的Gemfile:gem 'prawn'并运行bundle install

更长的答案:您使用的是旧版本的Prawn - 您ref中使用的Gemfile指的是2013年的某个地方。prawn-table 0.1是更新,需要更新版本的prawn。更准确地说,它使用Prawn ::FLOAT_PRECISION常量,已在this 2014's commit中添加到Prawn

答案 1 :(得分:0)

请在Gemfile上使用以下

gem 'prawn'

然后删除Gemfile.lock

然后

bundle install

重启服务器

答案 2 :(得分:0)

你可以像这样使用round(2) ..

val= 456.7890999999
val.round(2)

和Ans将 456.79