0

Placという名前のモデル内からカスタムクラスを参照しています

モデルは、models/plac.rb で次のように定義されます。

class Model < ActiveRecord::Base

  def notify_owner

    notifier = BatchNotify.getInstance
  end


end

BatchNotify は lib/modules/batch_notify.rb で次のように定義されています。

class BatchNotify

  def self.getInstance
    env = Rails.env
    if(env == "test")
      return TestBatchNotify.new
    else

      BatchNotify.new
    end
  end
end

また、modules ディレクトリを autoload_path に追加しました。

config.autoload_paths += %W(#{config.root}/lib/modules)

奇妙なことは、notify_owner() が Rails コンソールからうまく機能する場合です。

ただし、Rails サーバーで Web サーバーを起動し、ブラウザーでアプリを使用して notify_owner をトリガーしようとすると、次のエラーが発生します。

初期化されていない定数 Plac::BatchNotify

まず、コンソールと Web サーバーで動作が異なるのはなぜですか?

次に、Batch 通知定数がまだ認識されないのはなぜですか?

ちなみに、モジュール内で BatchNotify を定義し、それを Module::BatchNotify として参照しようとしましたが、うまくいきませんでした...

4

1 に答える 1