ruby 1.9.2 での fastercsv エラー 質問する

ruby 1.9.2 での fastercsv エラー 質問する

私は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

CSVFasterCSV gem は Ruby 1.9.2 ではすでに標準ライブラリ(例)に含まれているため、使用する必要はありませんrequire 'csv'。アプリケーション内の参照を から に変更しFasterCSVCSVフォルダーを削除するだけvendor/gems/fastercsvで、Just Work(tm) が動作するはずです。

おすすめ記事