モデルの共通処理を書く


RailsではObserverパターンが簡単に利用できるみたい。知らんかった。
これを使うとモデル共通のcallbackを定義できたりします。

やり方

昨日書いた、Railsのtimestampsのカラム名を変更する方法 をovserverで書き直してみました。

observer

#app/models/audit_observer.rb

class AuditObserver < ActiveRecord::Observer
  observe User, Article

  def before_create(model)
    current_time = Time.now
    model.add_date = current_time
    model.upd_date = current_time
  end

  def before_update(model)
    model.upd_date = Time.now
  end

end
config/environment.rb
  config.active_record.observers = :audit_observer

感想

これは簡単でいいわ。