导出CSV文件(不更改页面)

时间:2013-07-02 15:49:18

标签: ruby-on-rails ruby csv

show.html.erb

<%= link_to "Export", {:action => :export}, :method => :post%>

record_controller.rb

 def export
   csv_file = CSV.generate({}) do |csv|
   csv << @data_filtered.first.keys
   @data_filtered.each do |hash|
     csv << hash.values
   end
 end
 send_data csv_file, :type => 'text/csv; charset=iso-8859-1; header=present', :disposition => "attachment; filename=tester1.csv"
end

我想知道如何执行此操作,因为@data_filtered是发送到show.view的实例变量,但是当我单击导出时它不再存在(这是我想要导出到.csv的数据)。有没有办法通过link_to传递这些数据?我也期待这个问题会改变我不想做的观点。

1 个答案:

答案 0 :(得分:0)

以下是两种基本方法:

  • 在“show”方法中,将@data-filtered中的内容保存到模型中。然后你可以在'export'方法中再次找到它。

  • 或者,您必须将其全部发送到客户端,客户端必须将其全部发回。