【发布时间】:2011-12-15 10:03:32
【问题描述】:
在 ruby on rails 应用程序 prawn 中,prawnto 用于生成 pdf 会引发一些错误..
def generate_report
generate_report = params[:report_type]
# puts(generate_report)
if generate_report == "1"
# get count of all successful downloads
@total_downloads=StatisticDownload.where("DownloadSuccess=?","1").count
#puts(@total_downloads)
# get all downloads grouped by date
@downloads = StatisticDownload.select("date(Date) as downloaded_date, count(id) as count").where("DownloadSuccess=?","1").group("date(Date)")
respond_to do |format|
format.pdf { render :layout => false }
end
end
generate_report.pdf.prawn 中的代码
pdf.move_down(30)
book = @downloads.map do |item|
[
item.downloaded_date,
item.count
]
end
pdf.table book, :border_style => :grid,
:row_colors => ["FFFFFF", "DDDDDD"],
:headers => ["downloaded_date", "count"],
:align => { 0 => :left, 1 => :right, 2 => :right, 3 => :right }
/admin/generate_report 给出一个空白页作为输出
/admin/generate_report.pdf 给出错误
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.map
Extracted source (around line #2):
1: pdf.move_down(30)
2: book = @downloads.map do |item|
3: [
4: item.downloaded_date,
5: item.count
我该如何纠正这个错误
【问题讨论】:
-
像这样更改控制器中的代码 respond_to do |format| format.pdf do render :layout => false end end 现在它工作正常。现在的问题是在视图上设置文件样式,它会为 #<:table:0x86fa468> 生成错误未定义方法
headers=' for #<Prawn::Table:0x86fa468> undefined methodalign=>' 你能告诉我为什么会这样吗?
标签: ruby-on-rails ruby-on-rails-3 prawn prawnto