2015-02-23 3 views
3

Я принял решение о пересмотре эпизода Railscast 153.
Мой контроллернеинициализированная константа Креветка :: Ошибка FLOAT_PRECISION при использовании креветок

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 заранее за помощь.

ответ

1

TL; DR: Обновление prawn камня, добавив в ваш Gemfile: gem 'prawn' и работает bundle install.

Более длинный ответ: Вы используете старую версию Prawn - что ref вы используете в вашем Gemfile относится к где-то в 2013 году prawn-table 0.1 новее и требует более новую версии prawn. Точнее, используется Prawn::FLOAT_PRECISION константа, которая была добавлена ​​в this 2014's commit в Prawn.

+1

Спасибо большое, он работал –

+0

Отлично! Не забудьте отметить ответ как принятый/повышающий, если он вам помог. – dgilperez

0

Пожалуйста, используйте ниже на Gemfile

gem 'prawn' 

, а затем удалить Gemfile.lock

, а затем

bundle install

перезапуск сервера

+0

Как это добавляется к моему ответу? – dgilperez

+0

Я не видел, чтобы ваш ответ проголосовал за ваш ответ –

0

вы можете использовать round(2) как это ..

val= 456.7890999999 
val.round(2) 

и Ans будет 456,79