2012-02-23 58 views
0

使用以下代码(尝试和)生成CSV。我不知道发生了什么,当我运行这个时,我得到一个提示下载&在Excel中打开CSV(这是我想要的),但它没有任何内容....我也注意到一个文件保存在项目根目录(例如,名为'schedule_23Feb12'),这确实有预期的内容!?!随后的重新运行会导致下载被复制,但根文件将被覆盖。CSV导出 - 这里发生了什么?

任何想法?

def schedulecsv 
@products = Product.where('release_date > ?', Date.today) 
filename ="schedule_#{Date.today.strftime('%d%b%y')}" 
    csv_data = CSV.generate filename do |csv| 
    csv << ["cat_no","version"] 
     @products.each do |p| 
     csv << [p.cat_no,p.version] 
     end 
    end 
    send_data csv_data, 
    :type => 'text/csv; charset=iso-8859-1; header=present', 
    :disposition => "attachment; filename=#{filename}.csv" 
end 

回答

0

听起来像我以前用Internet Explorer遇到的错误。你看到的可能是文档的缓存版本,或者根本没有文档,因为它一下载就会从IE的缓存中过期(发生在Cache-control: max-age=0)。

尝试将明确的Cache-control: max-age=5设置为您的标题之一,以便获取文档的新副本。

+0

我在Firefox的Mac上运行这个。刚刚在Safari中尝试过,并获得相同的结果。尝试添加缓存控制,因为你建议并得到相同的,但我不是100%确定我把它放在正确的地方::type =>'text/csv;字符集= ISO-8859-1;头=存在,缓存控制:最大年龄= 5' – Raoot 2012-02-23 10:59:19

相关问题