Рельсы портятся с моими столбцами Postgres TIME - PullRequest
0 голосов
/ 05 марта 2020

Я использую postgres тип ВРЕМЯ для представления времени открытия филиала.

Мне известно, что Rails не обрабатывает только столбец TIME, инициализируя значения датой по умолчанию: 01 января 2000 г.

У меня нет проблем с этим, за исключением того факта, что мой часовой пояс пользователя равно -03, поэтому, когда пользователь выбирает время, скажем, 22:00:00, Rails фактически меняет его на 01:00:00 и вместо этого сохраняет это значение. Затем, когда я загружаю его из базы данных, он может даже загрузить другую дату (день до или после 01 января, что является головной болью, когда я сравниваю время).

Как я могу сказать Rails не менять оригинальный вход на сервер часового пояса? Или есть другой способ лучше?

1 Ответ

0 голосов
/ 07 марта 2020

Rails всегда имеют TZ, связанный со временем, он также хранит все в ut c в БД. Из коробки корректируется кодирование / декодирование. Мое предположение - вы сделали свое собственное декодирование, когда вы получаете значения из БД. В этом случае вы можете написать вспомогательный код, например:

def strip_tz(time)
  Time.new(time.year, time.month, time.day, time.hour, time.min, time.sec, "+00:00")
end

и использовать его при передаче значения времени для создания модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...