Как сохранить данные из входного типа html5 date / time как Date Time в Rails?

#jquery #ruby-on-rails #html #datetime #html-helper

#jquery #ruby-на-рельсах #HTML #дата — время #html-помощник #ruby-on-rails #дата и время

Вопрос:

Как обработать эти два входных сигнала, чтобы оба могли быть отправлены на контроллер и сохранены как Дата-время? Или любой helpper / gem выглядит как средство выбора даты и времени из 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:

Предполагая, что ваше поле datetime называется «started_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 (экранная клавиатура и окно выбора появляются одновременно и затрудняют ввод даты).