Ошибка quickcsv с ruby ​​1.9.2 - PullRequest
21 голосов
/ 23 мая 2011

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

rails 2.3.8

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

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 ]

38 голосов
/ 23 мая 2011

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

18 голосов
/ 23 мая 2011

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

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

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

и какРешение, которое я должен был

require 'csv'

вместо

require 'fastercsv'

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

...