导轨在使用回形针上传之前读取文件行

时间:2011-06-13 14:56:57

标签: ruby-on-rails ruby ruby-on-rails-3

我正在尝试在rails中上传文件(使用paperclip),我想在回形针将其发送到s3存储之前处理一些文件数据。在我的控制器中,我只是抓取文件参数(它确实给我一个文件),然后我尝试将行读入数组

csv_file = params[:activity][:data]

array = IO.readlines(csv_file.path)

问题是,我只得到文件的最后一行。我尝试使用.rewind,但仍然只是最后一行。

2 个答案:

答案 0 :(得分:0)

我不喜欢readlines,我总是使用正则表达式。试试这个。 行尾 - \ n

答案 1 :(得分:0)

方便的块结构,以确保文件句柄已关闭:

File.open(csv_file.path) do |f|
  a = f.readlines
  process a...
end

根据文件的大小,将整个文件读入内存可能不是一个好主意。