【问题标题】:How can I use ActiveRecord::Observer in Sinatra?如何在 Sinatra 中使用 ActiveRecord::Observer?
【发布时间】:2012-11-09 03:57:10
【问题描述】:

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

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

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

当然,我没有用于设置此设置的“配置”对象。有什么想法吗?

编辑

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

ActiveRecord::Base.observers = [ :thermometer_reading_observer ]

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

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

【问题讨论】:

    标签: ruby-on-rails activerecord sinatra


    【解决方案1】:

    通过阅读 ActiveRecord 源 here 发现它:

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

    ActiveRecord::Base.add_observer ThermometerReadingObserver.instance
    

    希望这对某人有所帮助!

    【讨论】:

      猜你喜欢
      • 2015-06-23
      • 1970-01-01
      • 2019-08-28
      • 2011-08-14
      • 1970-01-01
      • 2014-07-10
      • 2013-05-17
      • 2013-07-31
      • 2013-07-04
      相关资源
      最近更新 更多