使用Ruby 1.9.2 p290从S3读取小于10K的CSV文件

Bha*_*rat 5 ruby csv amazon-s3 paperclip

以下代码段适用于大于10 K的CSV文件.

lines = CSV.read(open(resource.csv(:original)))
Run Code Online (Sandbox Code Playgroud)

这是使用Paperclip gem读取存储在Amazon S3中的CSV文件.

如果文件大小小于10 K,我会收到以下错误:

ActionView :: Template :: Error(无法将StringIO转换为String):

我用Google搜索并找到以下帖子:

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

所以我尝试使用fastercsv gem,当我再次运行我的程序时,这是我得到的错误:

ActionView :: Template :: Error(请切换到Ruby 1.9的标准CSV库.它是FasterCSV加上对Ruby 1.9的m17n编码引擎的支持.):

看起来它是一个Catch-22.如何在ruby 1.9.2 p290中处理小于10 K的文件?

请指教.

谢谢.

巴拉特

mu *_*ort 3

我猜测当CSV.read它需要一个字符串时,它会被传递给一个 StringIO 。如果是这样,那么您应该能够拨打read电话并切换到CSV.parse让每个人都满意:

lines = CSV.parse(open(resource.csv(:original)).read)
Run Code Online (Sandbox Code Playgroud)