2012-01-04 3 views
3

私はPostgresqlでRails 2.3.3を使用しています。Rails ActiveRecordはUTCに変換するのではなく、変換されない時間をUTCとして保存します

私のアプリケーションenvironment.rbファイルではconfig.time_zone = 'UTC'を設定し、before_filterではTime.zone = current_user.time_zoneを設定しました。

私が直面している問題は、time_zoneというユーザーに保存されている時間ですが、データベースにはUTCとして保存されます。

たとえば、午前12時(すなわち、+530 IST)を選択すると、午前12時(UTC)として保存されます。しかし、ローカルでは設定が期待どおりに機能しているように見え、データを取得している間にtime_zoneというユーザーに変換され、530時間が得られます。

これについての助けになります。

おかげ

+0

フォームで時刻を選択し、正確な時刻がUTCとして保存されていますが、ISTの時間オフセットで保存されることが予想されます。 –

+0

いいえ時間をUTCに変換して保存すると予想されます。ここでは、時間はUTC時間に変換されずに保存されます。 – Sid

+0

ローカルではどういう意味ですか?開発マシンでは動作しますが、実稼動環境では動作しませんか? –

答えて

4

は、あなたのオブジェクトのデータベース列タイプとして、時間または日時を使用していますか?

This recent (and very similar) question to yoursは、タイプをtimeからdatetimeに変更することで解決できます。

+2

解決策は、私がやっていなかったTime.zone.parse(event.start_date)を使用することでした。 Time.zoneをユーザーのタイムゾーンに変更すると自動的に間違っていると判断されると私は考えました。ありがとうございました – Sid

関連する問題