NameError:Heroku上的未初始化常量

时间:2017-08-11 12:13:27

标签: ruby-on-rails ruby heroku ruby-on-rails-5

我有一个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上。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我很困惑,为什么我所有的对象在生产环境中的heroku的控制台中都未初始化常量。在我当地的作品中,它们很好。

原来问题出在我正在运行:“ heroku运行控制台”而不是“ heroku运行Rails控制台”。

值得一提的是,当您从heroku网站访问控制台时,同样会出现同样的问题。在此上浪费了很多时间。