所以我目前有车预订功能。
目前,预订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
希望这是你正在寻找的。