【问题标题】:Ruby on rails -prawn & prawnto errorRuby on rails -prawn & prawnto 错误
【发布时间】: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 #&lt;Prawn::Table:0x86fa468&gt; undefined method align=>' 你能告诉我为什么会这样吗?

标签: ruby-on-rails ruby-on-rails-3 prawn prawnto


【解决方案1】:

可能值得去 http://railscasts.com/episodes/153-pdfs-with-prawn-revised 并按照教程进行操作,但如果您没有专业订阅,则必须订阅观看。

【讨论】:

    猜你喜欢
    • 2011-01-07
    • 2010-12-27
    • 1970-01-01
    • 2017-06-15
    • 2014-04-17
    • 2011-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多