Rails:未初始化的常量只会在生产服务器上发生

7

我有一个类放在lib/network里:

module NetworkApi
  class NetworkProxy
  end
end

然后在另一个类中,我引用了这个类:

  network_proxy = ::NetworkApi::NetworkProxy.new(params)

在我的开发环境下,一切都正常运行,但是当我将其部署到服务器时,在上面的那一行出现了错误,错误信息如下:

NameError: uninitialized constant NetworkApi::NetworkProxy

我不知道为什么会出现这个奇怪的错误,请告诉我原因。


http://guides.rubyonrails.org/autoloading_and_reloading_constants.html#autoload-paths - Gleydson S. Tavares
1个回答

14

注意,Rails 5在生产环境启动应用后禁用自动加载功能

根据链接的博客文章:

 

在极少数情况下,如果我们的应用程序仍需要在生产环境中使用自动加载功能,我们可以通过将enable_dependency_loading设置为true来启用它,如下所示:

# config/application.rb 

config.enable_dependency_loading = true
config.autoload_paths << Rails.root.join('lib')`

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接