У меня проблемы с настройкой встроенного календаря bootstrap-datepicker-rails.
Моя форма выглядит так: здесь отображается красивый встроенный календарь и скрытое поле для рельсов, чтобы установить/обновить start_date в модели:
<%= form_for task do |f|%>
<%= f.hidden :start_date %>
<div id="picker"></div>
<%= f.submit %>
<% end %>
файл tasks.coffee:
ready = ->
$("#picker").datepicker().on 'changeDate', (e) ->
$("#task_start_date").val(e.date)
$(document).on('page:change', ready)
Сильные параметры установлены нормально, модель корректно сохраняется/обновляется.
У меня проблема в том, что календарь не показывает дату, когда модель редактируется, и я хотел бы, чтобы он выбрал дату, которая была ранее сохранена.
Когда я редактирую запись, сохраненную с полем start_field, установленным на 12 февраля 2015 года, для значения hidden_field устанавливается значение '2015-02-12 00:00:00.000000'.
Я попытался добавить строку setDate в task.coffee:
ready = ->
$("#picker").datepicker().on 'changeDate', (e) ->
$("#task_start_date").val e.date
$("#picker").datepicker 'setDate', $("#task_start_date").val()
$(document).on('page:change', ready)
Но это не работает, так как формат hidden_field неверен. Когда я вручную устанавливаю второй аргумент для «setDate» на «02-12-15», он работает.
Есть ли способ изменить формат метода setDate?
Должен ли я изменить часовой пояс rails на местный?
Как сборщик данных ожидает дату в формате %m-%d-%Y?
Я попытался поиграть с разными форматами, переданными в $("#picker").datepicker(...).on 'changeDate', (e) -> линия, но я не могу заставить ее работать! Я сдаюсь. Кто-нибудь, помогите мне, пожалуйста!
Я ненавижу играться с форматами даты и стандартами времени $%^&$:/