Пользовательская форма выбор даты в Rails

Я пытаюсь настроить пользовательскую дату, выбранную в rails. Rails предоставляет помощник формы для этого называется date_select. (<%= f.date_select %> на практике)

Однако HTML, который это дает: (показывая только месяц для краткости.)

<select id="event_starttime_2i" name="event[starttime(2i)]">
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>
<option value="4">April</option>
<option value="5">May</option>
<option value="6">June</option>
<option value="7">July</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12" selected="selected">December</option>
</select>

Однако я хочу, чтобы он был немного умнее. Я хочу, чтобы пользователю был предложен раскрывающийся список, который позволяет им выбирать даты от «Сегодня» до «недели от сегодня», а не заставлять их выбирать «год»/»месяц»/»день» индивидуально. Моя главная забота-возможность Rails отправлять пользовательские параметры «select» в качестве атрибутов «datetime». (Помощник date_select фактически отправляет 3 параметра http: starttime(1i), starttime(2i) и starttime(3i). ActiveRecord должен объединить их в одну дату перед обновлением строки в базе данных. Я хочу только один выпадающий список, и это вызывает беспокойство.)

Это своего рода то, что я собираюсь:

<select>
<option value="1"><%= Date.today %> </option>
<option value="2"><%= Date.today + 1%></option>
<option value="3"><%= Date.today + 2%></option>
<option value="4"><%= Date.today + 3%></option>
<option value="5"><%= Date.today + 4%></option>
<option value="6"><%= Date.today + 5%></option>
<option value="7"><%= Date.today + 6%></option>
</select>

Последний фрагмент кода не будет выполняться здесь. Это выглядит так на практике:

<select>
<option value="1">2016-12-27</option>
<option value="2">2016-12-28</option>
<option value="3">2016-12-29</option>
<option value="4">2016-12-30</option>
<option value="5">2016-12-31</option>
<option value="6">2016-01-01</option>
<option value="7">2016-01-02</option>
</select>

Как заставить это работать? (Persist on submit как атрибут datetime моей модели)

1 ответ