非常简单的问题,但似乎无法解决它!我正在创建一个出生日期表格,以确保用户只有在18岁以上才能注册。我有一个date_select,并且可以设置开始年份,但如何设置结束年份以便它是18年前的?我也将在模型中使用验证器,但不希望有人能够首先输入错误的信息。
我看了一遍,但只能找到有关如何使用time.ago和验证器的信息,我已经对它进行了分类,而不是表单本身。
或者,也许哪个更好 - 有没有办法让前两个项目(日和月)有一个date_select下拉列表,还有一年的文本框?这些方面的东西:
<%= f.date_select :date_of_birth, :order => [:day, :month] %><%= f.text_field :date_of_birth.year, :length => 4 %>
这是我到目前为止所做的:
<%= f.label :date_of_birth %><br />
<%= f.date_select :date_of_birth, :order => [:day, :month, :year], :start_year => 1900, :end_year => %>
谢谢!
答案 0 :(得分:3)
尝试
Time.now.year - 18
或
Date.today.year - 18
答案 1 :(得分:3)
在this page找到答案。只需将其更改为-18而不是+5:
<%= f.date_select :date_of_birth, :order => [:day, :month, :year], :start_year => 1900, :end_year => Time.now.year - 18 %>
答案 2 :(得分:2)
你也可以这样做:
18.years.ago.year