Я указал config.time_zone в моем приложении Rails, но полученные значения в полях формы по-прежнему отображаются как UTC (что создает проблемы при обновлениях). Разве это не должно быть переведено в местное время в указанной зоне?
/ config / application.rb (только соответствующие строки):
module ExampleSite
class Application < Rails::Application
config.time_zone = 'Central Time (US & Canada)'
end
end
/ 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>
<div class="field">
<%= f.label :time_end, "End Time (if applicable)" %><br />
<%= f.text_field :time_end, :class => "datetimefield" %>
</div>
Когда я вписываю строку даты и времени для создания нового события, значение сохраняется должным образом (в UTC) и отображается в моих представлениях по желанию (в местном часовом поясе), где оно было отображало UTC до переключатель config.time_zone (так что я знаю, что переключатель был сделан).
Но когда я иду редактировать любой другой атрибут события, время, отображаемое в поле формы в представлении / edit, является временем UTC - это означает, что когда я обновляю событие, время повторно сохраняется как время было введено заново и предположительно локально, что смещает время на 5 часов (мое локальное отличие от UTC), поскольку система преобразует «обновленный» атрибут времени в UTC для хранения.
Как сделать так, чтобы локализованное время отображалось в полях формы?
Запуск Rails 3.0.5, развертывание в Heroku (хотя проблема существует как в среде разработки, так и в рабочей среде)