2

我在 Sinatra 1.3.3 应用程序中成功使用了 ActiveRecord 3.2.9。我希望能够使用 ActiveRecord::Observer 类,但我不确定如何激活它们。

ActiveRecord::Observer文档是特定于 Rails 关于这个特定位的:

要激活观察者,请将其列在 config/application.rb 文件的 config.active_record.observers 配置设置中。

当然,我没有设置此设置的“配置”对象。有任何想法吗?

编辑

我尝试像这样激活观察者:

ActiveRecord::Base.observers = [ :thermometer_reading_observer ]

这会做一些事情,因为它们被正确设置,但它们仍然不做任何事情:

[4] pry(main)> ActiveRecord::Base.observers
=> [:thermometer_reading_observer]
4

1 回答 1

5

通过仔细阅读此处的 ActiveRecord 源代码得到了它:

要在 Rails 之外激活观察者,请执行以下操作(以我的观察者为例):

ActiveRecord::Base.add_observer ThermometerReadingObserver.instance

希望这可以帮助某人!

于 2012-11-21T20:32:56.173 回答