Ruby on rails rails在使用回形针上载之前读取文件行

Ruby on rails rails在使用回形针上载之前读取文件行,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我正在尝试在rails中上传一个文件(使用回形针),我想在让回形针将其发送到s3存储之前处理一些文件数据。在我的控制器中,我只需要抓取file参数(它给了我一个文件),然后我尝试将这些行读入数组 csv_file = params[:activity][:data] array = IO.readlines(csv_file.path) 问题是,我只得到文件的最后一行。我试着使用.rewind,但仍然只得到最后一行。我不喜欢读行,而且我总是使用正则表达式。试试这个。 行尾-\n方便的块结构,

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

csv_file = params[:activity][:data]

array = IO.readlines(csv_file.path)

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

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

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

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

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

谢谢,但同样的问题仍然存在-a[0]给出文件的最后一行,a[1]不返回任何内容。我猜这和回形针有关:/