ruby on rails - error de fastercsv con ruby 1.9.2
ruby-on-rails gem (2)
Tengo una aplicación de rieles existente que estoy ejecutando en ruby 1.9.2 y la versión de linux its rails es
rails 2.3.8
y también tiene un GEMFILE, en su directorio de proveedores / gemas tiene la gema ''fastercsv-1.5.4''
y en sus migraciones (en dos migraciones) ha requerido la gema ''fastercsv''
require ''fastercsv''
Pero cuando lo hago
rake db:migrate
falla la migración que reclama
"Por favor, cambie a la biblioteca CSV estándar de Ruby 1.9. Es FasterCSV más compatible con el motor de codificación m17n de Ruby 1.9".
y descubrí que el mensaje proviene del archivo gemas ''faster_csv.rb''. ya que tiene una condición para verificar la versión ruby
if RUBY_VERSION >= "1.9"
class FasterCSV
def self.const_missing(*_)
raise NotImplementedError, "Please switch to Ruby 1.9''s standard CSV " +
"library. It''s FasterCSV plus support for " +
"Ruby 1.9''s m17n encoding engine."
end
def self.method_missing(*_)
const_missing
end
def method_missing(*_)
self.class.const_missing
end
end
-- and more code
¿Puede alguien decirme cómo solucionar este problema? Tenga en cuenta que "fastercsv" no se ha agregado al GEMFILE.
No necesita usar la gema FasterCSV con Ruby 1.9.2 ya que está incluida como CSV
la biblioteca estándar (por ejemplo, require ''csv''
). Simplemente cambie las referencias en su aplicación de FasterCSV
a CSV
y elimine la carpeta vendor/gems/fastercsv
y debería funcionar solo (tm)
Encontré la respuesta a mi pregunta
Está basado en esta publicación
¿Qué es la biblioteca de CSV estándar de Ruby 1.9?
y como la solución que tuve que
require ''csv''
en lugar de
require ''fastercsv''
y cambia el FasterCSV a CSV