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.



你可能感兴趣的:(Ruby)