我的视图中有三个选择字段:
<%= select("policyholderdetail", "dob_day", days_options, {:prompt => "#{t :day}"}) %>
<%= select("policyholderdetail", "dob_month", months_options, {:prompt => "#{t :month}"}) %>
<%= select("policyholderdetail", "dob_year", dob_years_options, {:prompt => "#{t :year}"}) %>
:dob_day
的值范围为01-31,{1}来自01-12,:dob_month
来自1912-2012(过去100年)
我想验证某人的出生日期至少是17年前,即该人的年龄至少为17岁。我怎么能在我的rails模型中做到这一点?
答案 0 :(得分:2)
首先,您要确保只保存一个DateTime来表示所有三个字段。
DateOfBirth = Time.parse ("#{ dob_year + dob_month + dob_day } " )
然后你就是在那个日期工作:
validates :is_seventeen?
def is_seventeen?
DateOfBirth = Time.parse ("#{ dob_year + dob_month + dob_day } " )
DateOfBirth > Time.now - 17.years ? true : false
end
提示.. 强>
在具体答案之外,我建议您的DateOfBirth字段只是一个字段,而这三个选择代表表格中的一列。