Как сохранить данные из html5 типа ввода дата / время как дата и время в Rails? - PullRequest
1 голос
/ 08 ноября 2011

Как обработать эти два входа, чтобы оба можно было отправить на контроллер и сохранить как дату и время?Или любой хелпер / гем выглядит как сборщик даты и времени из html5?

html5 входные данные:

%input{:type => "date", :value => "yyyy-mm-dd"}
%input{:type => "time", :value => "07:00"}

стандартный помощник:

= f.datetime_select :time

РЕДАКТИРОВАТЬ: Мне пришло более простое решение, которое я проверял, и оно работает с datetimeполе:

%input{:name => "model[start_at]", :type => "date", :value => "yyyy-mm-dd"}
%input{:name => "model[start_at]", :type => "time", :value => "07:00"}

1 Ответ

2 голосов
/ 16 ноября 2011

Предполагая, что ваше поле даты и времени называется "launch_at", попробуйте это:

1) в вашей модели определите эти два метода:

def started_at_string
  # return started_at datetime converted to a string in a desired format, e.g.:
  self.started_at.strftime(Time::DATE_FORMATS[:default])
end

started_at_string=(datetime_string)
  self.started_at = Time.zone.parse(datetime_string)
  # also you should process cases when the string is not a datetime
end

2) по вашему мнению:

f.text_field :started_at_string

3) применить этот указатель даты к текстовому полю: http://jqueryui.com/demos/datepicker/, и на этот раз сборщик сверху: http://trentrichardson.com/examples/timepicker/, и вы получите хороший сборщик даты и времени.

Этот метод не очень хорошо работает для iPhone, хотя (экранная клавиатура и инструмент выбора появляются одновременно и затрудняют ввод даты).

...