1

1.8.7と1.9の両方の互換性を持たせたいRailsコードを書いています。いくつかの異なるファイルで、CSV解析を行っているので、現在、各ファイルに次のrequires行があります。

if RUBY_VERSION < "1.9"
  require "rubygems"
  require "fastercsv"
  CSV = FCSV
else
  require "csv"
end

ただし、すべての重複を避けるために、このブロックはおそらく1つの場所に存在する必要があります。それを置くのに最適な場所はどこですか?application.rb適切な場所ですか?

4

1 に答える 1

2

イニシャライザーに入れますconfig/initializers/csv.rb。これは自動的にレールにロードされ、ロードパスに混ざりません(したがって、ファイル名を気にする必要はありません)。

一部のロードメカニズムは「require」を実行せず、ローダーコンテキストでファイルを実行するだけなので、例外が発生した場合、通常の方法で処理できない可能性があることに注意してください。

于 2012-11-06T09:08:51.690 に答える