Ruby on rails Rails表单仅在datetime选择字段中显示未来日期

Ruby on rails Rails表单仅在datetime选择字段中显示未来日期,ruby-on-rails,ruby,ruby-on-rails-4,simple-form,Ruby On Rails,Ruby,Ruby On Rails 4,Simple Form,我有一个使用simple_form制作的表单,表单中的一个字段是datetime。我想限制它,以便用户只能选择日期时间之后的日期,从现在开始,这样他们就不能创建过去的记录 我尝试过用验证来实现这一点,但我只想限制表单选项。我把时间限制在我想要的范围内,但好几天都找不到类似的东西 活动的形式 <%= simple_form_for @event do |f| %> <%-# Form input fields -%> <%= f.input :name, l

我有一个使用simple_form制作的表单,表单中的一个字段是datetime。我想限制它,以便用户只能选择日期时间之后的日期,从现在开始,这样他们就不能创建过去的记录

我尝试过用验证来实现这一点,但我只想限制表单选项。我把时间限制在我想要的范围内,但好几天都找不到类似的东西

活动的形式

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

“btn btn主要”%>

对于Rails 4:

对于rails 4,有一个
date\u字段
helper,它可以接受
min
max

您可以使用此设置所需的值范围。因此,您将有如下内容:

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

您可以从以下网站获得更多信息:

旧答案:

您可以指定
:开始_year
选项,如下所示:

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

因此,在本例中,您需要做的是将
:start\u year
指定为当前年份


希望这能回答你的问题。

谢谢你的回复,我所寻找的更像是一个StaskStayDayS选项,但据我所知,这是不存在的。要做到这一点,你可能想考虑使用JavaScript库中的一个来禁用不想要的日期范围。e、 如果不使用datepicker(来自Bootstrap或JQuery),我就无法找到一种方法来实现这一点,因为我有一个datetime字段。rails-4正好覆盖了您。我已经用rails-4的正确解决方案编辑了我的答案。请检查一下,@Yoklanthank you@x6iae-你知道有没有办法将f.date_字段和time_字段结合起来?你是否使用
datetime_-select
作为输入?我目前使用的是由simple_-form gem提供的f.input,但在使用datetime_-select输入之前。这是你对
select
的前端要求吗天、月、年、小时、分钟,例如使用i3,或者您只需要一个下拉列表就可以了?一个下拉列表就可以了,目前只有一个下拉列表可以从日历中选择日期,一个用于小时,一个用于分钟。您可以发布代码吗?您是否使用日历插件?