Rails:未初始化的常量只发生在生产服务器上
我有一个放在lib/network
:
module NetworkApi class NetworkProxy end end
然后在另一个类中,我引用了这个类:
network_proxy = ::NetworkApi::NetworkProxy.new(params)
一切都在我的开发环境中正常运行,但是当我部署到服务器时,我在上面的行中收到错误消息:
NameError: uninitialized constant NetworkApi::NetworkProxy
我不知道为什么会发生这种奇怪的错误。 请告诉我为什么。
请注意, Rails 5在生产中启动应用程序后禁用自动加载 。
来自链接的博客文章:
在我们的应用程序仍然需要在生产环境中进行自动加载的极少数情况下,我们可以通过将
enable_dependency_loading
设置为true
来启用它,如下所示:# config/application.rb config.enable_dependency_loading = true config.autoload_paths << Rails.root.join('lib')`