的Rails:未初始化的常量恰好生产服务器上
问题描述:
我有我把里面的lib/network
类:的Rails:未初始化的常量恰好生产服务器上
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')`
http://guides.rubyonrails.org/autoloading_and_reloading_constants.html#autoload-paths –