Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails验证日期“早于17”_Ruby On Rails_Validation - Fatal编程技术网

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的控制器操作。