我采用了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提前帮助。
答案 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