Rails表单仅显示日期时间选择字段中的未来日期

时间:2016-04-16 03:55:48

标签: ruby-on-rails ruby ruby-on-rails-4 simple-form

我有一个使用simple_form创建的表单,表单中的一个字段是日期时间。我想限制它,以便用户只能选择截止日期之后的日期,这样他们就无法创建过去的记录。

我已尝试使用验证进行此操作,但我只想限制表单选项。我将小时范围限制在我想要的范围内,但几天都找不到类似的东西。

活动表格

<%= 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 %>

1 个答案:

答案 0 :(得分:5)

对于Rails 4:

对于rails 4,date_field助手可以同时接受minmax值。

您可以使用它来设置所需的值范围。所以,你会有类似的东西:

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

您可以从the documentation here

获取有关此内容的更多信息

旧回答:

您可以指定:start_year选项,如the documentation此处所示:

  

:start_year - 设置年份选择的开始年份。如果您要创建新记录,则默认为Date.today.year - 5。在编辑现有记录时,:start_year默认为当前所选年份减去5。

因此,在这种情况下,您需要做的是将:start_year指定为当前年份。

希望这能回答你的问题。