Rails エンジンで、メイン アプリケーションのモデルを監視するオブザーバーを作成しようとしています。
私のオブザーバー (app/models/my_engine/my_observer.rb 内) は、
module MyEngine
class MyObserver < ActiveRecord::Observer
observe AppModel
def after_create
# code to run when callback is observed
end
end
end
オブザーバーを登録するために、エンジン (lib/my_engine/engine.rb 内) を次のように変更しました。
module MyEngine
class Engine < ::Rails::Engine
isolate_namespace MyEngine
config.active_record.observers = MyEngine::MyObserver
end
end
ただし、サーバーを起動しようとすると、次のエラーが発生します。
... in `<class:Engine>': uninitialized constant MyEngine::MyObserver (NameError)
それでも、これは、エンジン内でのオブザーバーの使用に対する受け入れられた回答とまったく同じです
名前空間に何か問題がありますか? これは私が達成しようとしていることに対する最良の方法ですか?