Я работаю с приложением для веб-сайта концертного тура, где все время (время анонса, время начала продажи и время начала мероприятия) являются локальными для часового пояса каждого конкретного места.Я беру введенную пользователем дату / время, где это применимо, и запускаю before_filter, чтобы установить соответствующий часовой пояс, чтобы все сохранялось в базе данных в UTC.Для «новой» формы и для отображения времени в индексе и показе действий нет проблем вообще.Когда данные возвращаются из базы данных в представление, я использую in_time_zone для настройки в соответствии с конкретным местом.
Единственная проблема - в форме редактирования.Выбор даты / времени показывает данные в формате UTC.Когда я работаю над сайтом, я мысленно настраиваюсь, но для других это сбивает с толку.Я хотел бы сделать что-то вроде:
<%= f.datetime_select :start_datetime.in_time_zone(@event.time_zone) %>
Или в контроллере:
def edit
@performance = Performance.find(params[:id])
@event = @performance.event
@performance.start_datetime = @performance.start_datetime.in_time_zone(@event.time_zone)
end
Тогда просто, <%= f.datetime_select :start_datetime %>
.
К сожалению, я не нашел правильный способ сделать это.У вас есть идеи, которые стоит попробовать?
Большое спасибо.