2011-12-15 51 views
0

在軌道上應用對蝦紅寶石,prawnto用於生成PDF提出了一些錯誤軌道..的Ruby on -prawn&prawnto錯誤

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 } 

/管理/ 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 

我怎樣才能糾正這個錯誤

+0

更改控制器中的代碼像這樣 respond_to do | format | format.pdf do render:layout => false end \t \t end 現在它工作正常。現在的問題是在文件的樣式上產生一個錯誤 未定義的方法`headers ='爲# 未定義的方法`align =>'爲# 你能爲什麼會發生這種情況嗎? – SHANib 2011-12-15 11:54:57

回答