我正在将rails应用程序从3.0.20升级到3.2.13.似乎当我的测试环境将cache_classes设置为true时,模型将在初始化器之前加载.这导致一些错误,因为我的初始化器有一些模型的设置代码.同样奇怪的是,在使用cache_classes = true的生产中,我没有遇到同样的问题.任何人都可以指出我在这里正确的方向.
尝试将此添加到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
Run Code Online (Sandbox Code Playgroud)
或者,您可以检查以确保在调用初始化程序之前没有加载模型的gem.