表格从当前时间选择15分钟

问题描述 投票:0回答:1

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

目前,预订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)

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

ruby-on-rails datetime erb
1个回答
1
投票

您可以按如下方式设置选项,而不是直接将其设置为<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

希望这是你正在寻找的。

© www.soinside.com 2019 - 2024. All rights reserved.