给定下载CSV的链接(单击链接下载CSV而不是在浏览器中打开它(,我可以使用CSV.read()
阅读它吗?我知道我可以使用:
CSV.new(open(params[:ad_csv]), headers: true).each |row|
puts row # ad dict with header value as keys
end
我无法像这样阅读 csv CSV.read(open(params[:ad_csv]), headers: true, read_timeout: 600)
阅读了文档,但它并没有为我解决问题。因此,我的问题,CSV.read()
和CSV.new()
之间的区别.
CSV.new
只是初始化一个CSV实例,该实例可以分配给变量并可用于读取或写入。
而CSV.read
初始化 CSV 的实例并立即将其内容读取到数组中。从文档中:
简化使用
read
将 CSV 文件转换为数组数组。将path
传递给文件,任何options
::new 都可以理解。
(非常简化(CSV.read
实现如下:
def self.read(path, *options)
new(path, *options) { |csv| csv.read }
end