表格 select 距当前时间 15 分钟

Form select 15 minutes from current time

所以我目前有一个汽车预订功能。

目前预订 start_time 设置为 "DateTime.now + 15.minutes" 因此当创建预订时,开始时间自动从当前时间起 15 分钟.

用户可以使用 Time_select 选择预订的 end_time,如下所示:

 <div class="field">
    <text><label><%= form.label :end_time %></label></text>
    <div class="col-md-0">
      <%= form.time_select :end_time, id: :booking_end_time %>
    </div>
 </div>

我想要实现的不是让用户通过单独选择小时和分钟值来选择时间,而是要有这样的东西:

<select name="post[end_time]" >
  <option value= "#{DateTime.now + 30.minutes}" >15 Minutes</option>
  <option value= "#{DateTime.now + 45.minutes}" >30 Minutes</option>
  <option value= "#{DateTime.now + 60.minutes}" >45 Minutes</option>
</select> 

让他们从下拉菜单中选择“15 分钟”等选项,这意味着他们将预订 15 分钟的汽车

为了更清楚起见,这是我的预订创建功能目前的样子

def create
    params[:booking][:user_id]= current_user.id
    params[:booking][:start_time]= DateTime.now + 15.minutes
    @booking = Booking.new(booking_params)

任何关于如何解决我的问题的提示都将不胜感激

除了直接将其设置为<option value= "#{DateTime.now + 30.minutes}" >15 Minutes</option>,您还可以按如下方式设置选项:

<select name="post[end_time]" >
  <option value= "30" >15 Minutes</option>
  <option value= "45" >30 Minutes</option>
  <option value= "60" >45 Minutes</option>
</select>

现在您可以修改您的控制器创建如下:

def create
  params[:booking][:user_id]= current_user.id
  params[:booking][:start_time]= DateTime.now + 15.minutes
  params[:booking][:end_time]= DateTime.now + (params[:post][:end_time].to_i).minutes
  @booking = Booking.new(booking_params)
end

希望这就是您要找的。