Ruby on rails Can';t将表格导出到Excel中

Ruby on rails Can';t将表格导出到Excel中,ruby-on-rails,export-to-excel,Ruby On Rails,Export To Excel,我一直在关注导出表并遵循所有步骤。 我在application.rb中有: require 'csv' 在mime_types.rb中添加了MimeType: Mime::Type.register "application/xls", :xls 我的控制器: def index if params[:report] && params[:report][:start_date] && params[:report][:end_date

我一直在关注导出表并遵循所有步骤。 我在application.rb中有:

 require 'csv'
在mime_types.rb中添加了MimeType:

          Mime::Type.register "application/xls", :xls
我的控制器:

def index

if params[:report] && params[:report][:start_date] && params[:report][:end_date]
 start_date = params[:report][:start_date]
 end_date = params[:report][:end_date]
 @financial_reports = current_user.financial_reports.where(:created_at => start_date.to_date..end_date.to_date)

 respond_to do |format|
  format.html # index.html.erb
  format.csv { send_data @financial_reports.to_csv }
  format.xls
  format.json { render json: @financial_reports }
 end
end
结束

在我的模型中:

def self.to_csv(options = {})
  CSV.generate(options) do |csv|
  csv << column_names
  all.each do |product|
    csv << product.attributes.values_at(*column_names)
  end
end
但我确实在表格(html)中看到了数据! 另外,当我单击CSV时:

    Template is missing
在配置文件中添加内容时,我重新启动了应用程序。
有人能帮我吗?

您的代码中几乎没有错误

@financial_reports = current_user.financial_reports.where(:created_at => start_date.to_date..end_date.to_date)
您正在根据开始日期和结束日期筛选财务报告。它将返回一组财务报告。因此,您不能直接致电@financial_reports.to_csv。另一种方法是将其作为方法的参数发送,如

 format.csv { send_data FinancialReport.to_csv(@financial_reports) }
在模型中

def self.to_csv(reports,options = {})
  CSV.generate(options) do |csv|
  csv << column_names
  reports.each do |product|
    csv << product.attributes.values_at(*column_names)
  end
end
def self.to_csv(报告,选项={})
CSV.生成(选项)do | CSV|

csv您的代码中几乎没有错误

@financial_reports = current_user.financial_reports.where(:created_at => start_date.to_date..end_date.to_date)
您正在根据开始日期和结束日期筛选财务报告。它将返回一组财务报告。因此,您不能直接致电@financial_reports.to_csv。另一种方法是将其作为方法的参数发送,如

 format.csv { send_data FinancialReport.to_csv(@financial_reports) }
在模型中

def self.to_csv(reports,options = {})
  CSV.generate(options) do |csv|
  csv << column_names
  reports.each do |product|
    csv << product.attributes.values_at(*column_names)
  end
end
def self.to_csv(报告,选项={})
CSV.生成(选项)do | CSV|

csv@Mathi,谢谢你的帮助,但是现在我得到了错误
意外的结束
并且在重新加载之后-
未定义的方法键?:NilClass
以前的错误仍然存在(即使我设置了条件
where(:created_at=>“1/08/2012”。截止日期…“10/08/2012”。截止日期)
我用另一篇文章重写了代码,但我不知道如何传递参数(@Mathi,谢谢你的帮助,但现在我得到了错误
意外的结束
,重新加载后-
未定义的方法键?:NilClass
以前的错误仍然存在(即使我设置了条件
where(:created_at=>“1/08/2012”)。截止日期..“10/08/2012”.to_date)
我用另一篇文章重写了代码,但我不知道如何传递参数(