我正在编写一个小应用程序,它从上传的csv文件中获取数据,解析每一行,然后重新排列新csv文件中的数据,然后将其下载。
以下是创建新csv文件并下载它的代码:
CSV.open("template.csv", "w") do |csv|
@formatted_lines.each do |line|
csv << line
end
# Download CSV
send_file("template.csv", :disposition => 'attachment', :filename => File.basename("template.csv"))
end
我最终得到一个包含270行的csv文件,即使@formatted_lines数组中有280行/数组。原始csv文件中的数据在解析时会导致错误,这没有任何问题。为什么会切断最后10行呢?
答案 0 :(得分:4)
在尝试发送文件之前,您实际上并未关闭该文件,最后十行可能只是缓冲并且尚未写入磁盘。尝试在send_file
阻止后执行CSV.open
。