Экономия времени в Ruby on Rails для базы данных Postgres - PullRequest
0 голосов
/ 15 марта 2012

У меня возникла проблема с получением нужного времени для сохранения в моей базе данных. Если я выполню SELECT NOW () в postgres, я получу правильное время в EDT. Когда я делаю Time.now в консоли ruby, я также получаю правильное время. Я даже могу взять то, что я получаю из Time.now, вручную скопировать / вставить его и сохранить в базу данных через psql, и это будет правильно. Проблема в том, что, когда я пытаюсь сэкономить время в коде, время переходит на 3 или 4 часа вперед.

Если кому-то нужно точно узнать, что я получаю из Time.now или SELECT NOW (), дайте мне знать, и я отправлю его, когда вернусь домой.

Я уверен, что есть кое-что маленькое, что я пропускаю, но я не могу понять это! Я предполагаю, что это может быть распространенной проблемой для людей, устанавливающих Ruby on Rails с postgres. Спасибо за помощь.

1 Ответ

1 голос
/ 15 марта 2012

Rails 3 по умолчанию сохраняет все время в базе данных относительно времени по Гринвичу + 00: 00. Таким образом, вам придется установить смещение при расчете времени в зависимости от вашего часового пояса. Иначе, вы можете изменить часовой пояс Activerecord по умолчанию, добавив следующее к application.rb

 config.time_zone = 'Your time zone' (Example: 'Eastern Time (US & Canada)')
 config.active_record.default_timezone = 'Your time zone' (Example: 'Eastern Time (US & Canada)')
...