如何在Sinatra中使用ActiveRecord :: Observer?

Dav*_*est 2 activerecord ruby-on-rails sinatra

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

ActiveRecord :: Observer 文档特定于Rails有关此特定位:

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

当然,我没有设置此设置的"config"对象.有任何想法吗?

编辑

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

ActiveRecord::Base.observers = [ :thermometer_reading_observer ]
Run Code Online (Sandbox Code Playgroud)

这样做,因为它们设置正确,但它们仍然没有做任何事情:

[4] pry(main)> ActiveRecord::Base.observers
=> [:thermometer_reading_observer]
Run Code Online (Sandbox Code Playgroud)

Dav*_*est 5

得到它从细读ActiveRecord的源想通了,在这里:

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

ActiveRecord::Base.add_observer ThermometerReadingObserver.instance
Run Code Online (Sandbox Code Playgroud)

希望这有助于某人!