0

我的视图中有三个选择字段:

<%= 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、01-12:dob_monthdob_year1912-2012(过去 100 年)

我想验证某人的出生日期至少是 17 年前,即该人至少 17 岁。我怎样才能在我的 Rails 模型中做到这一点?

4

1 回答 1

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 字段只是一个字段,并且这三个选择代表表中的一列。

于 2012-08-02T10:16:57.060 回答