CSV::parse with named columns error on Heroku

The following code works locally (parsing a CSV with specific headers) but when on Heroku I get the following error on the ‘next if’ row:

TypeError (can’t convert String into Integer)

CSV.parse(File.open(file_path, 'r').read.gsub(/"/, ''), :headers => true) do |row|  
  next if row['Customer'] && row['Customer'].strip == '. standard note format'
  ...
end

So, before I rewrite my code and pull out named columns and just use integers (named columns certainly makes life easier) as the error message is suggesting, does anyone have an idea why this would be happening?

Rails 3.0.3, Ruby 1.9.2

I had an issue but only when migrating a CSV into a table: I got it right by removing the attr_accessable flags but dont think its a good idea to change this if its part of the app

Is it definitely ruby 1.9.2 locally and on heroku ? in 1.9.2 CSV is actually the library previously known as fastercsv, which has slightly different semantics in places

Fred

The following code works locally (parsing a CSV with specific headers) but

when on Heroku I get the following error on the ‘next if’ row:

TypeError (can’t convert String into Integer)

CSV.parse(File.open(file_path, 'r').read.gsub(/"/, ''), :headers =>

true) do |row|

  next if row['Customer'] && row['Customer'].strip == '. standard note

format’

  ...
end

So, before I rewrite my code and pull out named columns and just use

integers (named columns certainly makes life easier) as the error message is

suggesting, does anyone have an idea why this would be happening?

Rails 3.0.3, Ruby 1.9.2

Is it definitely ruby 1.9.2 locally and on heroku ? in 1.9.2 CSV is

actually the library previously known as fastercsv, which has slightly

different semantics in places

Thanks Fred. Before I saw your note I poked around and found that my heroku app (actually any default heroku app) is running on Ruby 1.8.7, and yes, in dev I am running 1.9.2. So I migrated to heroku bamboo 1.9.2:

heroku stack:migrate bamboo-mri-1.9.2

And everything now works. So yes, you are right on, was a ruby version issue.