2

我在模型文件夹中声明了一个不使用 ActiveRecord 的附加类。

我尝试在另一个模型中使用该类:

::ClassName.new

但不知何故,这只适用于heroku:

 NameError (uninitialized constant ClassName): 

在本地,我需要一个 require 'classname' 才能使其工作,另一方面,这在 heroku 上不起作用。

有什么办法可以解决这个问题?为什么这在本地和heroku上表现不同?

4

1 回答 1

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 上使用具有此设置的类时,我从来没有遇到过问题。

于 2012-08-16T20:44:47.213 回答