0

Rails アプリでは、環境ファイルでタイムゾーンが UTC に設定されています。本番サーバーまたはステージング サーバーで実行する場合、これは問題を引き起こしません。ただし、システム クロックで UTC に設定されているローカル開発マシンはなく、日付を比較するときにテスト エラーが発生しています。これは、Rails が を呼び出すときに UTC を使用してDateTime.nowいるのに対し、MySQL データベースはシステム時刻 (私の場合は CST) を使用しているためです。

特定の場合にDateTime.nowUTC タイムゾーンを使用しないようにする方法はありますか? 私が求めているのは、Rails エンジンをバイパスする、日付フィールドを更新する純粋な SQL の方法だと思います。

4

1 に答える 1

0

実際には、これを対応するファイルに追加することによりdevelopment、ローカル設定のみを使用するようにレールに指示できるはずです。testconfig/environments

config.time_zone = "Eastern Time (US & Canada)" #Change this
config.active_record.time_zone_aware_attributes = false
config.active_record.default_timezone = :local

それは私にとってはうまくいきましたが、制作を含むすべてを現地時間に切り替えました。しかし、このアプローチが環境ごとに機能しない理由がわかりません!

于 2012-08-03T13:40:17.177 に答える