2011-12-14 3 views
1

코드루비가 렌더링하는 동안 오류가있게 컨트롤러 NilClass는

def download_report 
    @downloads = StatisticDownload.select("date(Date) as downloaded_date, count(id) as count").where("DownloadSuccess=?","1").group("date(Date)") 
    respond_to do |format| 
    format.pdf { @downloads } 
    end 
end 

작성된 뷰

# download_report.pdf.prawn 
pdf.text "Download ##{@downloads.id}", :size => 30, :style => :bold 

downloads = @downloads.map do |downloads| 
    [ 
    downloads.file, 
    downloads.id 
    ] 
end 

그러나 ../generate_report.pdf는 오류를 생성합니다 : 기대하지 않았을 때 개체가 없습니다! Array의 인스턴스를 예상했을 수 있습니다. nil.map을 평가하는 중 오류가 발생했습니다.

새우 0.12.0을 설치하고 실행했습니다.

답변

0

전체 respond_to 블록을 제거하십시오, 그래서 당신은해야합니다 : 당신이 정말로 respond_to 블록을 필요로하는 경우

def download_report 
    @downloads = StatisticDownload.select("date(Date) as downloaded_date, count(id) as count").where("DownloadSuccess=?","1").group("date(Date)") 
end 

또는, format.pdf 후 블록을 지정하지 :

def download_report 
    @downloads = StatisticDownload.select("date(Date) as downloaded_date, count(id) as count").where("DownloadSuccess=?","1").group("date(Date)") 
    respond_to do |format| 
    format.pdf 
    end 
end 

두 경우 모두 prawnto의 컨트롤러 매직이 인계받을 필요가 있다고 생각합니다.

관련 문제