2010-09-29 37 views
26

我想補充的審計觀察其確實行動隨時after_create 3款(書籍,人物,作家)...Rails 3的觀察 - 想學習如何實現觀察員多個型號

我最近聽說過Observer功能,但找不到任何有關此功能的文檔。它支持Rails 3嗎?

如何爲3個模型創建一個after_create的Auditor Observer?

感謝

+8

不要忘記在你的application.rb'config.active_record.observers =:auditor_observer'的第25行添加這個。 – 2011-03-31 18:27:46

回答

58

Rails的observers是甜的,您可以在一個觀察者內observe多個模型

首先,你需要生成你的觀察:

rails g observer Auditor 

然後,在你新鮮auditor_observer.rb文件定義您想要的模型observe,然後添加after_create回調。

class AuditorObserver < ActiveRecord::Observer 
    observe :model_foo, :model_bar, :model_baz 

    def after_create(record) 
    #do something with `record` 
    end 
end 

在application.rb中添加

config.active_record.observers = :auditor_observer 

,它應該工作。

+0

奇怪,由於某種原因,它不起作用。我添加了一個調試器記錄器,沒有寫入任何內容。是否需要其他一些步驟才能讓觀察員參與進來? – AnApprentice 2010-10-01 01:35:55

+4

K發現它需要是「ActiveRecord :: Observer」,它需要在config目錄下的application.rb文件中定義。 – AnApprentice 2010-10-01 01:43:29

+0

是的你是對的,編輯答案。 – jpemberthy 2010-10-01 13:51:34