1

我正在编写一些我希望同时兼容 1.8.7 和 1.9 的 Rails 代码。在几个不同的文件中,我做了一些 CSV 解析,所以我目前在每个文件中有以下要求行:

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

但是,为了避免所有重复,这个块可能应该放在一个地方。放在哪里最好?是application.rb正确的地方吗?

4

1 回答 1

2

我会把它放在一个初始化程序中config/initializers/csv.rb。这会自动加载到 rails 中,并且不会混入加载路径(因此您不必担心文件名)。

请注意,某些加载机制不执行“要求”,而只是在加载程序上下文中运行文件,因此如果您遇到异常,您可能不会以通常的方式处理它。

于 2012-11-06T09:08:51.690 回答