我正在尝试在rails中上传文件(使用paperclip),我想在回形针将其发送到s3存储之前处理一些文件数据。在我的控制器中,我只是抓取文件参数(它确实给我一个文件),然后我尝试将行读入数组
csv_file = params[:activity][:data]
array = IO.readlines(csv_file.path)
问题是,我只得到文件的最后一行。我尝试使用.rewind,但仍然只是最后一行。
答案 0 :(得分:0)
我不喜欢readlines,我总是使用正则表达式。试试这个。 行尾 - \ n
答案 1 :(得分:0)
方便的块结构,以确保文件句柄已关闭:
File.open(csv_file.path) do |f|
a = f.readlines
process a...
end
根据文件的大小,将整个文件读入内存可能不是一个好主意。