我有一个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上存在。
有任何想法吗?
MyClass
运行正常 - 但是在你的 Rails 应用程序之外... - user4932805rails c production
并尝试调用您的类,会发生什么? - nattfodd