我已经编写了一些方法来处理rails应用程序的CSV::Table
对象。它使用CSV.read(file_path)
方法读取文件。但是,应用程序逻辑已经改变,它不再从本地文件中读取,而是从URL中读取。以CSV格式打开CSV文件::表格URL
我可以使用open-uri
gem open
方法加载CSV文件;但是它会创建一个StringIO
对象,该对象可以被解析为一个行数组,但我无法将其转换为CSV::Table
对象。
如何从URL中读取CSV文件并将其转换为CSV::Table
对象 - 以保留现有方法?
我正在考虑覆盖CSV.read
方法使用的现有CSV.open
方法,但我不确定这样做有多安全。有什么建议么?
事实上,它创建一个从'StringIO'对象'CSV'对象。但是,它不是'CSV :: Table'对象,它有自己的方法,例如'by_col','by_row'等。 – 2013-03-13 13:23:29
'CSV.generate'用于创建CSV文件。你的建议是使用该方法创建一个临时文件,并通过我最初使用的命令('CSV.read')加载它?这可能有效,但似乎是压倒性的。我已经有一个带有CSV内容的'StringIO';我需要找到一种方法将其转换为'CSV :: Table'对象。 – 2013-03-13 13:34:29
什么是CSV :: Table.new(CSV.new(stringio).read())? – leifg 2013-03-13 13:44:07