Rails 3.2模型在测试环境中的初始化器之前加载

时间:2013-04-22 14:37:09

标签: ruby-on-rails

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

1 个答案:

答案 0 :(得分: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。