2011-06-13 87 views
0

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

csv_file = params[:activity][:data] 

array = IO.readlines(csv_file.path) 

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

回答

0

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

0

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

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

读取整个文件到内存中可能不是取决于文件的大小是一个好主意。

+0

谢谢,但同样的问题仍然存在 - a [0]给了我文件的最后一行,而[1]什么都不返回。我猜测它与回形针有关:/ – 2011-06-13 16:17:16