fastercsv ruby 1.9.2 出错

在ruby1.9 + 上fastcsv 会出现这样错误 Please switch to Ruby 1.9's standard CSV library



应该将代码改成Csv, 首先require 'csv'

下面的代码可以正常运行。

require 'csv'
infile = "/home/pt/test.csv"
data = CSV.read(infile)


具体原因:

Ran into an issue with a rails 3.0 app which I had running on ruby 1.9 and am now getting to run on ruby 1.8. The app pulls in data from some CSV files and used the CSV library in ruby 1.9. All the CSV data imports failed under ruby 1.8. A little research showed that this is because CSV in ruby 1.9 was FasterCSV in ruby 1.8, and the CSV class in ruby 1.8 was something completely different. So I got around this by doing the following:

Add a conditional include of fastercsv to the Gemfile:

gem 'fastercsv', :platforms => :ruby_18

And then where I want to perform CSV operations, I do the following:

if CSV.const_defined? :Reader
csv = FasterCSV
else
csv = CSV
end

csv.foreach(path) do |row|
...
end

Thanks to http://blog.grayproductions.net/articles/getting_code_ready_for_ruby_19 for the conditional.

Also handy, since the app is running on both windows and linux was the following:

path = File.join(CSV_PATH, 'file.csv')

Hope this helps.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值