2013-03-21 3 views
3

У меня есть datepicker, который я хочу отобразить в MM/DD/YYYY. Однако я использую mysql db, который хочет YYYY-MM-DD. В настоящее время его спасение, но день и месяц меняются.рельсы изменить формат даты перед сохранением в mysql DB

Прямо сейчас у меня есть initalizer, date_time_formats.rb который имеет:

Date::DATE_FORMATS[:default] = '%m/%d/%Y' 

Кроме того, в моем Datepicker JScript у меня есть правильный формат, который я хочу, чтобы отобразить:

$(this).datepicker({"format": "mm/dd/yyyy", "weekStart": 0, "autoclose": true, "startDate":new Date()}); 

Я пробовал такие вещи:

Date.strptime(params[:location], "%d/%m/%Y") 

Но я получаю ошибку HashWithIndifferentAccess.

Как переформатировать дату в хэше params перед назначением экземпляру модели? Причина в том, что он отклоняется от модели, если дата была бы недействительной (например, 4 апреля 2013 года штраф, но 20 апреля 2013 года не потому, что нет 20-го месяца). Я большой начинающий рельс, поэтому, возможно, я ошибаюсь, но, похоже, он работает. Благодаря!

ответ

1

Посмотрите на метод strftime различных классов дат. Вы хотите, чтобы заклинание было Time.local(params[:location]).strftime('%m/%d/%Y'), надеюсь, что это поможет!

0

Быстрого способ дезинфицировать дату в правильный формат, чтобы захватить его в контроллере, прежде чем он будет сохранен и использовать STRFTIME исправить формат. Например:

@model = Model.new(model_params) 
@model.date_you_want = @model.date_you_want.strftime('%Y/%d/%m') 
@model.save 

Это сохраняет дату в правильном формате. (Я также использую драгоценный камень datepicker-boostrap)

Смежные вопросы