0

显示.html.erb

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

记录控制器.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传递这些数据?我也预料到这将改变我不想做的观点。

4

1 回答 1

0

以下是两种基本方法:

  • 在您的“显示”方法中,将内容保存@data-filtered到您的模型中。然后您可以在“导出”方法中再次找到它。

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

于 2013-07-02T16:20:33.117 回答