Rails 2.3 から 3.2 にアップグレードしていますが、日付の変換に問題があります。
Rails 2.3 では、日付変換のデフォルト形式は mm/dd/yyyy でした。この形式の文字列を active_record モデルに割り当てると、日付が正しく変換されます。例えば
私はユーザーオブジェクト(active_recordオブジェクト)を持っています
レール2.3で
user.registered_on = "10/03/2013" #=> Oct 3, 2013
しかし、Rails 3.2でも同じこと
user.registered_on = "10/03/2013" #=> March 10, 2013
これを修正する方法は?
初期化ファイルの 1 つで Date::DATE_FORMATS[:default] = '%m/%d/%Y' を設定しようとしましたが、これはうまくいきません。
日付のロケールも設定していますが、それもうまくいきません。
この問題を再現する完璧な方法の 1 つは、次のとおりです。
rails 2.3.x バージョンと rails 3.2.x バージョンの 2 つのアプリを作成します。
少なくとも 1 つの datetime フィールドを使用して、アプリケーションごとに 1 つのモデルを作成します。
両方のアプリケーションのデータベースを作成して移行します。
各アプリケーションのターミナルから Rails コンソールに移動します。
active_record モデル オブジェクトを作成し、この "10/3/2013" 文字列を datetime フィールドに割り当てて、結果が両方とも異なる日付であることを確認します。
この日付または日時の変換を修正してRails 2.3と同じにする方法が必要です