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 として参照しようとしましたが、うまくいきませんでした...