2

Sinatra1.3.3アプリケーションでActiveRecord3.2.9を正常に使用しています。ActiveRecord :: Observerクラスを使用できるようにしたいのですが、それらをアクティブ化する方法がわかりません。

ActiveRecord :: Observerのドキュメントは、この特定のビットに関するRailsに固有のものです。

オブザーバーをアクティブ化するには、config/application.rbファイルのconfig.active_record.observers構成設定にオブザーバーをリストします。

もちろん、この設定を行うための「config」オブジェクトはありません。何か案は?

編集

私は次のようにオブザーバーをアクティブにしてみました:

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 に答える