[edit]

概要

 class CommentObserver < ActiveRecord::Observer
   def after_save(comment)
     Notifications.deliver_comment("admin@do.com", "New comment was posted", comment)
   end
 end

のようにObserverクラスを用意しておく。
これで、Comment#saveが呼ばれると、admin@do.comにメールが飛ぶ。

[edit]

クラス名から監視するクラスが決定できない場合

 class AuditObserver < ActiveRecord::Observer
   observe Account
   def after_update(account)
     AuditTrail.new(account, "UPDATED")
   end
 end
   def after_update(record)
     AuditTrail.new(record, "UPDATED")
   end
 end
[edit]

監視できるメソッドは

http://railsapi.masuidrive.jp/module/ActiveRecord%3A%3ACallbacks

[edit]

Observerのクラスを置く場所

[edit]

Observerを有効にするには

config/environment.rb内で、config.active_record.observersに設定を追加する必要がある。

 config.active_record.observers = :comment_observer, :signup_observer

この設定をしないと実行されない。

投稿者志田 | パーマリンク?

| append.gif

tag: Ruby on Rails?


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

アークウェブのサービスやソリューションはこちら