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