我有一个Rails 5应用程序,其中一些模块/类位于/lib
下。在开发中,我可以通过rails控制台访问它们,如下所示:
irb(main):001:0> MyClass.do_something
在Heroku的制作中,我得到了这个:
irb(main):001:0> MyClass.do_something
NameError: uninitialized constant MyClass
您可能已经猜到我在我的application.rb中自动加载了/lib
目录:
config.autoload_paths << Rails.root.join('lib')
然而,最奇怪的是,我可以从rake任务访问这个类。所以这样的事情很好:
task do_something: :environment do
MyClass.do_something
end
这告诉我该课程出现在Heroku上。
有什么想法吗?
答案 0 :(得分:0)
我很困惑,为什么我所有的对象在生产环境中的heroku的控制台中都未初始化常量。在我当地的作品中,它们很好。
原来问题出在我正在运行:“ heroku运行控制台”而不是“ heroku运行Rails控制台”。
值得一提的是,当您从heroku网站访问控制台时,同样会出现同样的问题。在此上浪费了很多时间。