Приложение Ruby on rails, использующее гем Prawn для генерации pdf, выдает ошибку при отображении: неопределенный метод `text 'для nil: NilClass - PullRequest
1 голос
/ 14 декабря 2011

код в контроллере

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

Я установил prawn 0.12.0 и prawnto.

Ответы [ 2 ]

2 голосов
/ 05 января 2012

Об этом см. http://www.idyllic -software.com / blog / creation-pdf-using-prawn-in-ruby-on-rails /

Вы можете найти простое решение ..

0 голосов
/ 14 декабря 2011

Попробуйте удалить весь блок respond_to, чтобы получить:

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

В качестве альтернативы, , если вам действительно нужен блок response_to, не указывайте блок после 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

Я полагаю, что в обоих случаях вам нужно позволить магии контроллера креветок взять верх.

...