【发布时间】:2017-01-16 05:07:22
【问题描述】:
我想用同样的方法制作PDF和Excel报表代码,想只传一次参数,但是报错
NoMethodError(nil:NilClass 的未定义方法 `[]')。
控制器代码 -
def print_application_report
@from = params[:salary][:from_date]
@to = params[:salary][:to_date]
@company = params[:employee][:company_id]
@company_location = params[:employee][:company_location_id]
@department = params[:employee][:department_id]
@employees = Employee.where(company_id: @company.to_i,company_location_id: @company_location.to_i,department_id: @department).pluck(:id)
@travel_requests = TravelRequest.where(application_date: @from.to_date..@to.to_date,employee_id: @employees)
respond_to do |format|
format.js
format.xls {render template: 'travel_requests/application_datewise_report_xls.xls.erb'}
format.html
format.pdf do
render pdf: 'application_datewise_report_pdf',
layout: 'pdf.html',
orientation: 'Landscape',
template: 'travel_requests/application_datewise_report_pdf.pdf.erb',
# show_as_html: params[:debug].present?,
:page_height => 1000,
:dpi => '300',
:margin => {:top => 10, # default 10 (mm)
:bottom => 10,
:left => 20,
:right => 20},
:show_as_html => params[:debug].present?
end
end
end
【问题讨论】:
-
在显示该错误时突出显示哪一行?,此错误表明您指向的对象指向一个不存在的数组?检查行号。
-
您可能将
params[:salary]或params[:employee]设为 nil。 -
不,这些不是零,因为当我以不同的方法编写 PDF 和 excel 代码时,它没有显示错误,因为在 PDF 代码中我不使用 params[:salary] 。我直接使用了 @from = params [:from_date] 。但是现在我想这样使用,怎么可能这样做。
-
错误的行号是多少?
-
为了这样使用,您需要以这种方式发送参数。您目前如何发送参数?
标签: ruby-on-rails