轨道日期验证与年龄

sha*_*jin 4 ruby validation ruby-on-rails date

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

我的dob格式是mm/dd/yy

and*_*ell 12

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

old_enough = ("10/23/2000".to_date + 18.years) < Date.today
Run Code Online (Sandbox Code Playgroud)

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

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


B_.*_*B_. 8

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

将该检查放入用户模型中的方法中,并在调用errors.add :dob, 'must be older than 18'失败时调用它.

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