在使用回形针上传之前,用滑轨读取文件的线

问题描述

| 我正在尝试在Rails中上传文件(使用回形针),并且我希望在允许回形针将其发送到s3存储之前处理一些文件数据。在我的控制器中,我只是获取了file参数(它确实给了我一个文件),然后尝试将这些行读入数组中
csv_file = params[:activity][:data]

array = IO.readlines(csv_file.path)
问题是,我只得到文件的最后一行。我尝试使用.rewind,但仍然只获得最后一行。     

解决方法

        我不喜欢readlines,而且我总是使用正则表达式。尝试这个。 行尾-\\ n     ,        方便的块结构,确保关闭文件句柄:
File.open(csv_file.path) do |f|
  a = f.readlines
  process a...
end
根据文件的大小,将整个文件读入内存可能不是一个好主意。