在我的rails应用程序中,有一个包含DOB字段的注册表单 用户的年龄不得超过18岁。如何对此进行验证。
我的dob格式是mm / dd / yy
答案 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