Я работаю с приложением Rail 5.2, которое имеет дело с Location
записями и связанными OpeningHour
записями.Модель OpeningHour
содержит поля day
(enum), starts_at
(время) и ends_at
(время).
Когда я запускаю нижеприведенное, Rails конвертирует Time.now
из местного часового пояса(+08: 00) к времени UTC до того, как он сравнил время с любым из OpeningHour
записей.Поскольку поля starts_at
и ends_at
хранятся как времена без часовых поясов, часовые пояса, используемые в запросе, не совпадают.
Location.opening_hours.where("start_at <= ? AND ends_at >= ?", Time.now, Time.now).any?
Как лучше всего сказать Rails не преобразовывать в UTCвремя перед сравнением, поскольку время в базе данных уже в localtime
?
Любая помощь будет высоко ценится!