Ошибка cscsv с ruby ​​1.9.2

У меня есть существующее приложение rails, которое я использую на ruby ​​1.9.2 и linux его версия rails

rails 2.3.8

и у него также есть GEMFILE, в каталоге vendor/gems он содержит гем 'fastcsv-1.5.4'
и в своих миграциях (в двух миграциях) он потребовал драгоценный камень'cscsv '

require 'fastercsv'

Но, когда я делаю

rake db:migrate 

он не проходит миграцию, утверждая,

"Пожалуйста, переключитесь на стандартную библиотеку CSV Ruby 1.9. Это FasterCSV плюс поддержка механизма кодирования m17n в Ruby 1.9".

и я обнаружил, что сообщение приходит из файла gems 'fast_csv.rb'. так как есть условие проверить версию 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

Может кто-нибудь сказать мне, как решить эту проблему. Обратите внимание, что "quickcsv" не был добавлен в GEMFILE.

2 ответа

Решение

Я нашел ответ на свой вопрос

Это основано на этом посте

Что такое стандартная библиотека CSV Ruby 1.9?

и как решение мне пришлось

require 'csv'

вместо

require 'fastercsv'

и измените FasterCSV на CSV

Вам не нужно использовать гем FasterCSV с Ruby 1.9.2, так как он уже включен в стандартную библиотеку CSV (например require 'csv'). Просто измените ссылки в вашем приложении от FasterCSV в CSV и удалите vendor/gems/fastercsv папка и она должна просто работать (тм)

Другие вопросы по тегам