Ruby on rails 具有两个日期属性的rails中的验证
因此,我有一个具有两个日期属性的模型Ruby on rails 具有两个日期属性的rails中的验证,ruby-on-rails,ruby,ruby-on-rails-3,validation,model,Ruby On Rails,Ruby,Ruby On Rails 3,Validation,Model,因此,我有一个具有两个日期属性的模型 # migration t.date :valid_from t.date :valid_until 这些是可选的,您应该能够定义从到的valid\u或到的valid\u,但是如果两个日期都已填写,我希望(当然)从到的valid\u早于valid\u 检查这一点的最佳位置是在模型内部,带有验证器,不是吗?我认为控制员不是最好的地方 如何在我的模型中使用验证器来实现这一点?我尝试了几种方法,但运气不佳。您可以使用自定义验证器: validate
# migration
t.date :valid_from
t.date :valid_until
这些是可选的,您应该能够定义从到的valid\u或到
的valid\u,但是如果两个日期都已填写,我希望(当然)从
到的valid\u早于valid\u
检查这一点的最佳位置是在模型内部,带有验证器,不是吗?我认为控制员不是最好的地方
如何在我的模型中使用验证器来实现这一点?我尝试了几种方法,但运气不佳。您可以使用自定义验证器:
validate :valid_date_range_required
def valid_date_range_required
if (valid_from && valid_until) && (valid_until < valid_from)
errors.add(:valid_until, "must be later than valid_from")
end
end
验证:需要有效的\u日期\u范围\u
def有效日期范围要求
if(有效期从&有效期到)&(有效期到<有效期从)
错误。添加(:valid\u-to,“必须晚于valid\u-from”)
结束
结束
如果您发现自己必须验证很多日期,您可能需要添加gem!它为您提供了一个很好的语法,可能还提供了您所需要的所有灵活性。nice,虽然我在谷歌上没有找到在对象中定义简单方法的示例,但它们都是关于对验证器进行子类化的。很好,谢谢!