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 助手可以接受 minmax 值。

您可以使用它来设置想要的值范围。所以,你会得到类似的东西:

<%= f.date_field : event_date, min: Date.today %>

您可以从 the documentation here

获得更多相关信息

旧答案:

您可以指定 :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 指定为当前年份。

希望这能回答您的问题。