私はRuby 1.9.2とLinuxで実行している既存のRailsアプリケーションを持っています。そのRailsのバージョンは
rails 2.3.8
また、GEMFILEもあり、vendor/gemsディレクトリには「fastercsv-1.5.4」gemがあり
、移行(2つの移行)では「fastercsv」gemが必要でした。
require 'fastercsv'
でも私がそうすると
rake db:migrate
移行に失敗しました
「Ruby 1.9 の標準 CSV ライブラリに切り替えてください。これは、Ruby 1.9 の m17n エンコーディング エンジンをサポートする FasterCSV です。」
そして、このメッセージはgemの「faster_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
この問題を解決する方法を教えてください。 'fastercsv' は GEMFILE に追加されていないことに注意してください。
ベストアンサー1
CSV
FasterCSV gem は Ruby 1.9.2 ではすでに標準ライブラリ(例)に含まれているため、使用する必要はありませんrequire 'csv'
。アプリケーション内の参照を から に変更しFasterCSV
、CSV
フォルダーを削除するだけvendor/gems/fastercsv
で、Just Work(tm) が動作するはずです。