Rails在暂存时自动加载lib类和模块,但在推送到生产时则不会

时间:2017-04-27 12:54:13

标签: ruby-on-rails heroku puma

我最近将我的rails应用程序从Thin迁移到Puma,托管在Heroku上。一切都在暂存环境中完美运行,但是当我部署到生产环境时,似乎没有加载任何模块或类。

应用程序启动并在生产时运行,但只要需要/lib目录中的某个类,我就会收到NameError(未初始化的常量)错误。

在我的application.rb文件中,这是我加载lib文件的地方:

config.autoload_paths += Dir["#{config.root}/lib", "#{config.root}/lib/**/"]

运行Rails 3.1.1和Ruby 2.1.1

我无法理解为什么他们会加载分段而不是生产。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

尝试使用Rails.root代替config.root

答案 1 :(得分:1)

您应该尝试将这些行添加到application.rb:

config.eager_load_paths << Rails.root.join('lib')
config.autoload_paths << Rails.root.join('lib')

对我有用