我在模型文件夹中声明了一个不使用 ActiveRecord 的附加类。
我尝试在另一个模型中使用该类:
::ClassName.new
但不知何故,这只适用于heroku:
NameError (uninitialized constant ClassName):
在本地,我需要一个 require 'classname' 才能使其工作,另一方面,这在 heroku 上不起作用。
有什么办法可以解决这个问题?为什么这在本地和heroku上表现不同?
我在模型文件夹中声明了一个不使用 ActiveRecord 的附加类。
我尝试在另一个模型中使用该类:
::ClassName.new
但不知何故,这只适用于heroku:
NameError (uninitialized constant ClassName):
在本地,我需要一个 require 'classname' 才能使其工作,另一方面,这在 heroku 上不起作用。
有什么办法可以解决这个问题?为什么这在本地和heroku上表现不同?
我无法解释为什么会发生这种情况,但我想我会分享我在我的应用程序中所做的一件事(这也可能有助于解决您的问题)。
在我的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 上使用具有此设置的类时,我从来没有遇到过问题。