У меня проблема с чтением из базы данных, которая подается из другой системы, так как я просто могу читать из нее, и дата и время хранятся в: локальном часовом поясе.
Как и в случае с приложениями 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 по умолчанию, то есть :local.
Есть много способов обойти это, например, установить before_filter на каждом контроллере, но это просто не похоже на Rubyist.
:utc
- person Gabe Moothart   schedule 20.09.2013