Я использую simple_form
, чтобы установить время начала и окончания события.Тем не менее, он показывает время в неправильном часовом поясе.
Мой контроллер:
class EventsController < ApplicationController
def new
@event = Event.new(start_time: 1.hour.since(now), end_time: 2.hours.since(now))
render 'edit'
end
...
private
...
def now
Time.zone.now
end
end
Мой взгляд (используя slim):
= simple_form_for @event do |f|
= f.input :name
= f.input :start_time
= f.input :end_time
= f.input :camera_ids, collection: Camera.all, as: :check_boxes
= f.button :submit, class:'btn-primary'
Я живу в зоне +03:00
,И представление отображается оба раза 2 часа назад и 1 час назад соответственно.Это просто время в UTC
, однако я хочу его в реальном часовом поясе.Он сохраняется в базе данных с тем же часовым поясом.
Вывод моей консоли для Time.zone.now
или Time.current
правильный и использует +03:00
часовой пояс.Как я могу объяснить часовые пояса для simple_form
?
========
Upd
Я пытался отрендерить время без simple_form
.Если я использую = select_datetime @event.start_time.in_time_zone('Moscow')
, это работает.
Но установка .in_time_zone('Moscow')
для simple_form
не дает результата = (Или, может быть, я делаю это неправильно.
У меня также естьпредположим, что это может быть примерно так: simple_form
представляет datetime. Если я использую стандартный помощник, он устанавливает значения, такие как start_time[hours]
(и т. д.) для каждого поля. simple_form
, с другой стороны, устанавливает значения из start_time(4i)
(и т. д.) Может быть, проблема где-то там.