轨道日期验证与年龄

时间:2011-05-13 21:50:33

标签: ruby-on-rails ruby validation date

在我的rails应用程序中,有一个包含DOB字段的注册表单 用户的年龄不得超过18岁。如何对此进行验证。

我的dob格式是mm / dd / yy

2 个答案:

答案 0 :(得分:12)

这个语法非常有趣,您可以这样做:

old_enough = ("10/23/2000".to_date + 18.years) < Date.today

将您的字符串转换为日期,添加18年,并查看它是在今天之前还是之后。

如果你想把它放在模型验证器中,这个railscast可能很有用: http://railscasts.com/episodes/211-validations-in-rails-3

答案 1 :(得分:8)

您可以自己进行验证。将字符串转换为to_date的日期,并检查它是否小于18.years.ago

将检查放入用户模型中的方法中,如果失败则调用类似errors.add :dob, 'must be older than 18'的内容。

然后在模型的顶部调用validates :dob_check