3

我正在将 Rails 应用程序从 3.0.20 升级到 3.2.13。似乎当我的测试环境将 cache_classes 设置为 true 时,模型会在初始化程序之前加载。这会导致一些错误,因为我的初始化程序有一些模型的设置代码。同样奇怪的是,在使用 cache_classes=true 的生产环境中,我没有遇到同样的问题。谁能在这里指出我正确的方向。

4

1 回答 1

5

尝试将此添加到您的 config/environments/test.rb 文件中。它会在类被缓存之前加载你的初始化器:

  # Load initializers before models get cached
  config.before_eager_load do
    Dir[File.expand_path "../../initializers/*", __FILE__].each { |file| require file }
  end

或者,您可以检查以确保在调用初始化程序之前没有加载模型的 gem。

于 2013-07-01T20:40:27.063 回答