6

很简单的问题,但似乎无法解决!我正在创建一个出生日期表格,以确保用户只有年满 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 =>  %>

谢谢!!

4

3 回答 3

3

尝试

Time.now.year - 18

或者

Date.today.year - 18
于 2012-10-04T13:08:15.903 回答
3

在此页面上找到了答案。只需将其更改为 -18 而不是 +5:

<%= f.date_select :date_of_birth, :order => [:day, :month, :year], :start_year => 1900, :end_year => Time.now.year - 18 %>
于 2012-10-04T13:15:39.437 回答
2

你也可以这样做:

18.years.ago.year
于 2014-06-19T15:15:37.573 回答