我有一个Rails 5应用程序,其中一些模块/类位于/lib
下。在发展中,我可以访问那些通过轨道控制台,像这样:NameError:Heroku上未初始化的常量
irb(main):001:0> MyClass.do_something
生产中在Heroku我得到这个:
irb(main):001:0> MyClass.do_something
NameError: uninitialized constant MyClass
正如你可能已经猜到了我自动载入/lib
目录在我的application.rb中:
config.autoload_paths << Rails.root.join('lib')
然而,最令人好奇的是,我可以从rake任务中访问这个类。所以像这样的工作很好:
task do_something: :environment do
MyClass.do_something
end
这告诉我,这个类是存在于Heroku。
任何想法?
'MyClass'运行 - 但在您的rails应用程序之外... – Liroy
@LiroyLeshed好吧,但这并不能解释它为什么在开发控制台中运行,但不在Heroku控制台中运行... – Severin
如果您运行' rails c production'在本地,并尝试打电话给你的班级? – nattfodd