Rails 3 Observer - вы узнаете, как реализовать Observer для нескольких моделей - PullRequest
26 голосов
/ 30 сентября 2010

Я хотел бы добавить Auditor Observer, который выполняет действие в любое время после создания 3 моделей (книг, персонажей, авторов) ...

Я недавно слышал о возможности Observer, но не могу найти никакой документации по этой способности. Это поддержка в Rails 3?

Как мне создать Auditor Observer, который делает что-то after_create для 3 моделей?

Спасибо

1 Ответ

58 голосов
/ 30 сентября 2010

Рельсы наблюдатели сладки, Вы можете 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

И это должно сработать.

...