私が望む簡単なことは、DateTimeをUTCでデータベースに保存し、UTCで再度取得することですが、Railsは、DateTimeをローカルタイムゾーンに保存し、8時間の差(PST)を追加すると想定しているようです。モデルに DateTime フィールドがあります。モデルの特定のインスタンスでこのフィールドを更新するリクエスト (PUT) を送信すると、何らかの理由でタイムゾーンが混同されます。
PUT 経由でレールに送信: 2012-02-17T03:46:58Z
後続の GET で返される: 2012-02-17T11:46:58Z
時差は正確に 8 時間であり、PST (-08:00) である私のタイムゾーンによって説明できます。
Rails 3.1.3 で Datamapper 1.2 を使用しています。
アプリケーション構成のタイムゾーンを UTC に明示的に設定しました。
dm-zone-types も使用しようとしました。私にとっては何も変わりませんでした。
私のレポのgit-bisectは、データベースを元のsqliteからpostgresに切り替えたときに、この誤動作が導入されたことを明らかにしました。このコミットは、database.yml と gemfile のみを変更しました。他には何もありません。
何か案は?