这是我的模型课:
class Availability < ActiveRecord::Base
attr_accessible :beginning_date, :end_date
validates :beginning_date, :end_date :presence => true
# custom validators
validate :dates_cant_be_in_the_past
def dates_cant_be_in_the_past
if Date.parse(beginning_date) < Date.today
errors.add(:beginning_date, "cant be in the past")
end
if Date.parse(end_date) < Date.today
errors.add(:end_date, "cant be in the past")
end
end
end
现在应该发生两件事:首先验证beginning_date
andend_date
属性的存在,然后运行我的dates_cant_be_in_the_past
验证器。可悲的是,这种方法不起作用。如果我将字段留空,则该Date.parse
方法会引发异常,因为参数显然是空的。
是否可以定义默认和自定义验证的顺序?还是我必须自己实现存在验证器,所以我会做类似的事情:
validate :dates_cant_be_blank, :dates_cant_be_in_the_past
指南至少说:
您可以为每个类方法传递多个符号,并且相应的验证将按照注册时的相同顺序运行。
预先感谢