Форма выбора 15 минут от текущего времени - PullRequest
0 голосов
/ 11 сентября 2018

Итак, у меня сейчас есть функция бронирования автомобиля.

В настоящее время время начала бронирования установлено на "DateTime.now + 15.minutes" , поэтому при создании бронирования время начала автоматически составляет 15 минут от текущего времени.

Пользователь может выбрать время окончания бронирования, используя Time_select, например:

 <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)

Буду признателен за любые советы о том, как решить мою проблему

1 Ответ

0 голосов
/ 11 сентября 2018

Вместо того, чтобы напрямую установить его как <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

Надеюсь, что этоэто то, что вы ищете.

...