created_at_user_time
私は最近、タイムゾーン変換されたcreated_atタイムスタンプを保持することになっている(最初は値がありませんでした)という名前のデータベースに列を追加しました。変換を行い、新しい列に保存することになっている簡単なスクリプトを作成しました。しかし、作業を終えた後、元のタイム スタンプが新しいタイム スタンプにコピーされていることに気付きました。Railsコンソールで調査することにし、以下を得ました。
1.9.3p194 :002 > user.time_zone
=> "Central Time (US & Canada)"
1.9.3p194 :003 > test = user.orders.first
1.9.3p194 :004 > test.created_at
=> Wed, 02 Jan 2013 02:02:54 UTC +00:00
1.9.3p194 :006 > newstamp = test.created_at.in_time_zone("#{user.time_zone}")
=> Tue, 01 Jan 2013 20:02:54 CST -06:00
1.9.3p194 :008 > test.created_at_user_time = newstamp
=> Tue, 01 Jan 2013 20:02:54 CST -06:00
#ok, now lets save and check it
1.9.3p194 :009 > test.save
(0.4ms) begin transaction
(0.1ms) commit transaction
=> true
1.9.3p194 :010 > test = user.orders.first
1.9.3p194 :011 > test.created_at_user_time
=> Wed, 02 Jan 2013 02:02:54 UTC +00:00
これを正しく行う方法について誰かアイデアがありますか?