2011-11-16 36 views
5

下面的代碼段工作正常的CSV文件大小大於10K。讀CSV文件中小於10K從S3用Ruby 1.9.2 P290

lines = CSV.read(open(resource.csv(:original))) 

這是讀出存儲在亞馬遜CSV文件S3使用回形針寶石。

如果文件大小小於爲10K不過,我得到以下錯誤:

::的ActionView ::模板錯誤(不能轉換成StringIO的字符串):

我用Google搜索,發現以下崗位:

http://adayinthepit.com/?p=269

於是,我就用fastercsv寶石,當我再次跑了我的程序,這裏是錯誤,我得到:

ActionView :: Template :: Error(請切換到Ruby 1.9的標準CSV庫。它的速度更快,支持Ruby 1.9的m17n編碼引擎。):

看起來像是Catch-22。在ruby 1.9.2 p290中如何處理小於10 K的文件?

請指教。

謝謝。

巴拉特

回答

3

我要去猜測CSV.read被交給一個StringIO的,當它想一個字符串。如果是這樣,那麼你應該能夠堅持在read呼叫並切換到CSV.parse讓每個人都開心:

lines = CSV.parse(open(resource.csv(:original)).read) 
+0

謝謝。作品。 – Bharat