cho*_*ise 3 ruby validation model ruby-on-rails ruby-on-rails-3
所以我有一个带有两个日期属性的模型
# migration
t.date :valid_from
t.date :valid_until
Run Code Online (Sandbox Code Playgroud)
这些是可选的,您应该只能定义valid_fromor valid_until,但是如果两个日期都已填写,我希望(当然)valid_from早于valid_until.
检查这一点的最佳位置是在带有验证器的模型内部,不是吗?我认为控制器不会是最好的地方。
这怎么能用我的模型中的验证器来完成?我尝试了几件事但没有运气。
您可以使用自定义验证器:
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1426 次 |
| 最近记录: |