class Book < ActiveRecord::Base
after_destroy :history_book
private
def history_book
logger.info('deleted: ' + self.inspect)
end
deleted: #<Book id: 24, isbn: "978-4-7980-2812-0", title: "タイトル", price: 100, publish: "出版社B", published: "2011-12-17", cd: false, created_at: "2011-12-17 00:03:15", updated_at: "2011-12-17 00:03:15">
class Book < ActiveRecord::Base
after_destroy do |b|
logger.info('deleted: ' + self.inspect)
end
class BookCallbacks
cattr_accessor :logger # この中でloggerクラスを直接使えないので、
self.logger ||= Rails.logger # Railsのloggerを取得して使ってる
def after_destroy(b)
logger.info('deleted: ' + b.inspect)
end
end
class Book < ActiveRecord::Base after_destroy BookCallbacks.new
C:\user\dev\railbook\app>rails g observer Book
invoke active_record
create app/models/book_observer.rb
invoke test_unit
create test/unit/book_observer_test.rb
class BookObserver < ActiveRecord::Observer
cattr_accessor :logger # この中でloggerクラスを直接使えないので、
self.logger ||= Rails.logger # Railsのloggerを取得して使ってる
def after_save(b)
logger.info('saved: ' + b.inspect)
end
end
Railbook::Application.configure do config.active_record.observers = :book_observer