我在教室里放了一节课:
module NetworkApi
class NetworkProxy
end
end
然后在另一个类中,我引用了这个类:
network_proxy = ::NetworkApi::NetworkProxy.new(params)
在我的开发环境中,一切都正常运行,但当我部署到服务器时,在上面的行中会出现一个错误,并显示消息:
NameError: uninitialized constant NetworkApi::NetworkProxy
我不知道为什么会发生这种奇怪的错误。请告诉我为什么。
最佳答案
注意Rails 5 disables autoloading after booting the app in production。
从链接的博客文章:
在生产环境中应用程序仍需要自动加载的罕见情况下,我们可以通过将enable_dependency_loading
设置为true
来启用它,如下所示:
# config/application.rb
config.enable_dependency_loading = true
config.autoload_paths << Rails.root.join('lib')`