我正在尝试在我的 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)
然而,这与在引擎中使用观察者的公认答案完全相同
我在命名空间上做错了吗?这是我想要实现的最佳方法吗?