21

Ruby 1.9.2で実行している既存のRailsアプリケーションがあり、LinuxのRailsバージョンは

rails 2.3.8

また、GEMFILE もあり、vendor/gems ディレクトリには「fastercsv-1.5.4」gem
があり、移行 (2 回の移行) には gem「fastercsv」が必要です。

require 'fastercsv'

しかし、私がするとき

rake db:migrate 

移行の主張に失敗します

「Ruby 1.9 の標準 CSV ライブラリに切り替えてください。FasterCSV に加えて、Ruby 1.9 の m17n エンコーディング エンジンをサポートしています。」

そして、メッセージが宝石の「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 に追加されていないことに注意してください。

4

2 に答える 2

38

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

于 2011-05-22T21:14:00.693 に答える
18

私は自分の質問に対する答えを見つけました

この投稿に基づいています

Ruby 1.9 標準 CSV ライブラリとは

そして、私がしなければならなかった解決策として

require 'csv'

それ以外の

require 'fastercsv'

FasterCSVをCSVに変更します

于 2011-05-22T21:18:10.977 に答える