Rails 表单仅在日期时间 select 字段中显示未来日期
Rails form only show future dates in datetime select field
我有一个使用 simple_form 制作的表格,表格中的一个字段是日期时间。我想限制它,以便用户只能 select 日期时间之后的日期,因为他们不能为过去创建记录。
我已经尝试通过验证来执行此操作,但我只想限制表单选项。我将小时范围限制在我想要的范围内,但好几天都找不到类似的东西。
活动表格
<%= simple_form_for @event do |f| %>
<%-# Form input fields -%>
<%= f.input :name, label: 'Title' %>
<%= f.input :event_date, minute_step: 15, start_hour: 7, end_hour: 21 %>
<%= f.input :body %>
<%= f.submit 'Submit' , :class => "btn btn-primary" %>
<% end %>
对于Rails 4:
对于 rails 4,有 date_field
助手可以接受 min
和 max
值。
您可以使用它来设置想要的值范围。所以,你会得到类似的东西:
<%= f.date_field : event_date, min: Date.today %>
获得更多相关信息
旧答案:
您可以指定 :start_year
选项,如 the documentation 所示:
:start_year - Set the start year for the year select. Default is Date.today.year - 5 if you are creating new record. While editing existing record, :start_year defaults to the current selected year minus 5.
因此,在这种情况下,您需要做的是将 :start_year
指定为当前年份。
希望这能回答您的问题。
我有一个使用 simple_form 制作的表格,表格中的一个字段是日期时间。我想限制它,以便用户只能 select 日期时间之后的日期,因为他们不能为过去创建记录。
我已经尝试通过验证来执行此操作,但我只想限制表单选项。我将小时范围限制在我想要的范围内,但好几天都找不到类似的东西。
活动表格
<%= simple_form_for @event do |f| %>
<%-# Form input fields -%>
<%= f.input :name, label: 'Title' %>
<%= f.input :event_date, minute_step: 15, start_hour: 7, end_hour: 21 %>
<%= f.input :body %>
<%= f.submit 'Submit' , :class => "btn btn-primary" %>
<% end %>
对于Rails 4:
对于 rails 4,有 date_field
助手可以接受 min
和 max
值。
您可以使用它来设置想要的值范围。所以,你会得到类似的东西:
<%= f.date_field : event_date, min: Date.today %>
获得更多相关信息
旧答案:
您可以指定 :start_year
选项,如 the documentation 所示:
:start_year - Set the start year for the year select. Default is Date.today.year - 5 if you are creating new record. While editing existing record, :start_year defaults to the current selected year minus 5.
因此,在这种情况下,您需要做的是将 :start_year
指定为当前年份。
希望这能回答您的问题。