问题描述
|
我正在尝试在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
根据文件的大小,将整个文件读入内存可能不是一个好主意。