используя bootstrap-datepicker-rails, теперь мои даты - строки, но мне нужно сохранить в db как даты

После долгого стресса, наконец, получил драгоценный камень datepicker, чтобы успешно открыть мини-календарь и ввести дату в поле. Несмотря на использование этого сценария jQuery,

$jQuery ->

$(document).on "focus", "[data-provide~='datepicker']", (e) ->
 - $(this).datepicker
 - format: "yyyy-mm-dd"
 - weekStart: 1
 - autoclose: true;

... дата, возвращаемая в поле, все еще имеет формат мм / дд / гггг. Это нормально, если я хочу использовать строковое поле в базе данных (и я могу закончить реконструкцию базы данных таким образом), но мне нужно выполнить несколько простых математических функций на start_date - end_date, поэтому я создал базу данных с датой поля вместо строковых полей в первую очередь.

Поэтому мне нужно сделать одно из двух - либо переформатировать поля даты базы данных в строки (и использовать Date.parse () в моих математических вычислениях), либо найти способ сохранить дату, возвращаемую в текстовое поле, сгенерированное следующим образом:

<div class="field">
    <%= f.label :end_date %><br>
    <%= f.text_field :end_date, 'data-provide' => 'datepicker' %>
  </div>

... как поле даты mysql в формате гггг-мм-дд. Есть ли способ сделать это в документе _form.html.erb перед отправкой формы?

Или, в качестве альтернативы, есть ли параметр / опция в плагине bootstrap-datepicker-rails, который позволит полю ввода быть полем даты вместо text_field или преобразовать возвращаемое значение в дату вместо строки?


person notewrangler    schedule 18.11.2014    source источник
comment
Я догадывался, что использовал f.date_field вместо f.text_field, и вуаля, появилось 2 виджета календаря (я полагаю, один сгенерирован bootstrap-datepicker). Виджет начальной загрузки не сохранил дату, а новый сохранил. Включает ли rails это бесплатно с использованием date_field, или драгоценный камень все еще генерирует его? (Я удалил команды javascript, но не datepicker.js или .css). Если да, то почему люди борются с плагинами datepicker? Возможно, новое в рельсах 4?   -  person notewrangler    schedule 19.11.2014


Ответы (1)


// здесь решение
object.date = Date.strptime (params [: date], '% m /% d /% Y'). to_date

// изменить формат даты в соответствии с вашим кодом

person Vinay Shankar    schedule 19.11.2014