Rails 3 Ошибка часового пояса - PullRequest
5 голосов
/ 31 мая 2010

Я борюсь с поддержкой часовых поясов в бета-версии Rails 3, и я хотел бы знать, если это ошибка или я делаю что-то не так. У него проблема:

> Time.zone = 'Madrid'  # it is GMT+2
 => "Madrid" 
> c = Comment.new
 => #<Comment id: nil, title: "", pub_at: nil>
> c.pub_at = Time.zone.parse('10:00:00')
 => Mon, 31 May 2010 10:00:00 CEST +02:00 
> c.save
> c
 => #<Comment id: 3, title: "", pub_at: "2010-05-31 08:00:00">
> c.reload
 => #<Comment id: 3, title: "", pub_at: "2010-05-31 08:00:00">
ruby-1.8.7-p249 > c.pub_at
 => Mon, 31 May 2010 13:00:00 CEST +02:00 

Как видите, атрибут pub_at правильно хранится в базе данных, но при получении он добавляет 3 часа, и я подозреваю, что это потому, что он использует часовой пояс моей локальной машины, который находится в GMT-3.

Та же последовательность команд в рельсах 2.3.5 работает отлично.

Какие-нибудь проблемы? Должен ли я сообщить билет?

1 Ответ

3 голосов
/ 03 июня 2010

Если я хорошо помню, все даты хранятся в базе данных как UTC.

И рельсы и консоль не обрабатывают даты одинаково!

Таким образом, вы должны попробовать протестировать его в своем приложении, установив часовой пояс в своем приложении. Rb

config.local_zone = 'Madrid'

А затем выведите значение! Вы должны увидеть правильное время.

Надеюсь, что эта помощь

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