У меня проблема с чтением из базы данных, которая подается из другой системы, поскольку я просто могу читать из нее, и дата и время хранятся в: местном часовом поясе.
Как и в приложениях Rails 3.2, он «должен» храниться в: utc, как и все мои другие таблицы в этом приложении.
Мне нужна только эта модель: local. Остальные должны быть в: UTC
Мой местный часовой пояс - «UTC-04: 00»
class ExternalTable < ActiveRecord::Base
establish_connection :otherdb
table_name :iseries_table <-- I have to live with it.
default_timezone = :local
puts "my default timezone is #{default_timezone}"
#lot's of defs
.....
end
Бег "рельсы с"
> ExternalTable.inspect
«lot´s of attributes»
my default timezone is :utc <---utc!?. I have just set it to :local!?!?!?
> ExternalTable.default_timezone
:utc
> ExternalTable.default_timezone = :local
:local
> ExternalTable.default_timezone
:local <--- yeah, right. Setting it AFTER instantiated, works.
Итак, похоже, что Rails устанавливает весь часовой пояс ActiveRecord.Base обратно на: utc, после его инициализации, переопределяя значение по умолчанию ActiveRecord, то есть локальное.
Есть много способов обойти это, например, установить before_filter на каждом контроллере, но это просто не похоже на Rubyist.