Я работаю с приложением для веб-сайта концертного тура, где все время (время объявления, время начала продаж и время начала мероприятия) локально для каждого часового пояса конкретного места проведения. Я беру введенную пользователем дату / время, где это применимо, и запускаю before_filter, чтобы установить соответствующий часовой пояс, чтобы все хранилось в базе данных в формате UTC. Для «новой» формы и для отображения времени в индексе и показа действий вообще никаких проблем. Когда данные возвращаются из базы данных в представление, я использую in_time_zone для настройки для конкретного места проведения.
Единственная проблема связана с формой редактирования. При выборе даты / времени данные отображаются в формате UTC. Когда я работаю над сайтом, я мысленно настраиваюсь, но для других это сбивает с толку. Я хотел бы сделать что-то вроде:
<% = f.datetime_select (hidden)%>
Или в контроллере:
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%>
.
К сожалению, я не нашел правильного способа сделать это. У вас есть идеи, которые стоит попробовать?
Большое спасибо.