'config.time_zone' Rails не применяется к данным datetime, загруженным в текстовое поле. Исправить?

Когда я использую datetime_select в своей форме, Rails правильно настроит часовой пояс для данных datetime (согласно моей настройке config.time_zone ) и отобразит правильное зональное время в ] редактировать представление той же формы.

Но когда я пытаюсь получить те же данные в text_field (для того же вида редактировать той же формы),Rails, похоже, не настраивается на часовой пояс.

/events/edit.html.erb (полный файл):

Edit This Event

<%= form_for(@event) do |f| %> <%= render 'fields', :f => f %>
<%= f.submit "Update Event" %>
<% end %>

/events/_fields.html.erb (только соответствующие строки:)

<%= f.label :time_start, "Start Time" %>
<%= f.text_field :time_start, :class => "datetimefield" %>

Пример: Смещение моей зоны -500. Я ввожу 8:00 как start_time в форме, 13:00 UTC записывается в базу данных, 8:00 отображается на странице show (спасибо config.time_zone Accounting для смещения), но когда я пытаюсь отредактировать этот объект, текстовое поле формы для start_time загружается с 13:00 (которое, если оно отправлено без изменений, становится 18:00, когда оно сохраняется в базе данных).

проблематично, потому что я пытаюсь использовать DatePicker jQuery UI (с надстройкой TimePicker), который полагается на text_field (не будет работать с datetime_select ).

Есть ли способ сделать это заставить Rails применить смещение config.time_zone к текстовым полям?

Запуск Rails 3.0.5, развертывание на Heroku.

Заранее извиняюсь за то, что задал очень аналогичный вопрос Несколько недель назад. Информация там по-прежнему актуальна, я просто лучше понимаю проблему, поэтому я снова спросил.

8
задан Community 23 May 2017 в 11:58
поделиться