Ошибка 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
папка и она должна просто работать (тм)