ActiveRecordで初期値を設定する様にする。

ちょっと必要なケースがあったので作ってみた。

class Sample < ActiveRecord::Base
  DEFAULT_DATAS={:name => "初期名前"}
  alias initialize_old initialize

  def initialize(attributes = nil)
    initialize_old(attributes)
    if @new_record && defined? DEFAULT_DATAS
      DEFAULT_DATAS.each do | column, value |
        @attributes[column.to_s] = value unless @attributes[column.to_s] 
      end 
    end 
  end 
end

こんなん定義してみた。
まあ、DBにデフォルト値設定してればそれですむ話だし、そっち(初期値)があれば、初期値を
有効にする様に作ってる。