Когда я использую datetime_select в своей форме, Rails корректно отрегулирует часовой пояс данных datetime (согласно моей настройке config.time_zone
) и отобразит правильно зонированное время в представлении edit
той же формы..
Но когда я пытаюсь извлечь те же данные в текстовое поле (для того же вида edit
той же формы), Rails, похоже, не подстраивается под часовой пояс.
/events/edit.html.erb (полный файл):
<h1>Edit This Event</h1>
<%= form_for(@event) do |f| %>
<%= render 'fields', :f => f %>
<div class="actions">
<%= f.submit "Update Event" %>
</div>
<% end %>
/ events / _fields.html.erb (только соответствующие строки:)
<div class="field">
<%= f.label :time_start, "Start Time" %><br />
<%= f.text_field :time_start, :class => "datetimefield" %>
</div>
Пример: Смещение моей зоны -500.Я ввожу 8:00 в качестве start_time в форме, 13:00 UTC записывается в базу данных, 8:00 отображается на странице show
(благодаря config.time_zone
с учетом смещения), но когда я пытаюсьредактируя этот объект, текстовое поле формы для start_time загружается с 13:00 (которое, если передано без изменений, становится 18:00, когда оно сохраняется в базе данных).
Это проблематично, потому что я пытаюсьиспользовать DatePicker пользовательского интерфейса jQuery (с надстройкой TimePicker), который опирается на текстовое поле (не будет работать с datetime_select
).
Есть ли способ заставить Rails применять смещение config.time_zone
в текстовые поля?
Запуск Rails 3.0.5, развертывание на Heroku.
Заранее извиняюсь за очень похожий вопрос несколько недель назад.Информация там все еще применима, я просто лучше понимаю проблему, поэтому я переспросил.