我已經編寫了一些方法來處理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