2

モデル フォルダーに、ActiveRecord を使用しない追加のクラスを宣言します。

そのクラスをそのような別のモデルで使用しようとしています:

::ClassName.new

しかし、どういうわけか、これはherokuでのみ機能します:

 NameError (uninitialized constant ClassName): 

ローカルでは、それを機能させるために必要な「クラス名」が必要ですが、一方、herokuでは機能しません。

これを解決する方法はありますか?これがローカルとherokuで異なる動作をするのはなぜですか?

4

1 に答える 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 に答える