バリデーター
正しいとは思わないけれど、結果だけ。
Rails2系
class Hoge < ActiveRecord::Base validates_presence_of :name validates_format_of :booked_day, :with=>/\d{4}-\d{2}-\d{2}/ protected def validate errors.add(:name, "空欄なんて絶対に許さない!") if name.empty? unless booked_day.blank? errors.add(:booked_day, "未来の日付は登録できません") if booked_day > Date.today end end end
こんな感じで動いていた。
Rails3.1
#encoding: utf-8 class Hoge < ActiveRecord::Base validates :name, :presence => true validates :booked_day, :presence => true, :format =>{:with=>/\d{4}-\d{2}-\d{2}/} validate :params_check private def params_check errors.add(:name, "空欄なんて絶対に許さない!") if name.empty? errors.add(:booked_day, "「受付日」は未来を登録できません") if booked_day > Date.today end end
こんなカタチにしたら検証してくれるようになった。うーん・・・