在Rails中放置复杂的require语句的位置?

时间:2012-11-06 08:57:17

标签: ruby-on-rails

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

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

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

1 个答案:

答案 0 :(得分:2)

我将它放在初始值设定项config/initializers/csv.rb中。它会自动加载到rails中,并且不会混合到加载路径中(因此您不必担心文件名)。

请注意,某些加载机制不执行“require”,而只是在加载器上下文中运行该文件,因此如果您收到异常,则可能无法以通常的方式处理它。