Ruby on rails Rails验证日期“早于17”
我的视图中有三个选择字段:Ruby on rails Rails验证日期“早于17”,ruby-on-rails,validation,Ruby On Rails,Validation,我的视图中有三个选择字段: <%= select("policyholderdetail", "dob_day", days_options, {:prompt => "#{t :day}"}) %> <%= select("policyholderdetail", "dob_month", months_options, {:prompt => "#{t :month}"}) %> <%= select("policyholderdetail", "d
<%= 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_日的值范围为01-31,:dob_月的值范围为01-12,dob_年的值范围为1912-2012,持续100年
我想确认某人的出生日期至少是17年前,即此人至少17岁。如何在rails模型中实现这一点?首先,您需要确保只保存一个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字段仅为一个字段,并且这三个选项代表表中的一列。您可以将第二部分粘贴到模型中。您必须确保您的参数与dob_year dob_month和dob_day正确对齐。错误:动态常数赋值粘贴问题中的代码。包括您的表单和def create的控制器操作。