我在模型文件夹中声明了一个不使用ActiveRecord的附加类。
我尝试在另一个模型中使用该类:
::ClassName.new
但不知怎的,这只适用于heroku:
NameError (uninitialized constant ClassName):
在本地我需要一个''classname'来使它工作,但另一方面它不适用于heroku。
有什么方法可以解决这个问题?为什么这在本地和heroku上表现不同?
答案 0 :(得分:1)
我不能说为什么这种情况正在发生,但我想我会在我的应用程序中共享一件事(这也可能有助于解决您的问题)
在config/application.rb
我放
config.autoload_paths += Dir["#{Rails.root}/app/models/**/"]
我在app/models
中有一个目录结构,如
- app
|
- models
|
- database
- observer
- tableless
我将class_name.rb
放入app/models/tableless
。这有助于将模型类分组为它们所服务的“类型”目的。我在Heroku上使用具有此设置的类时从未出现过问题。