我正在從rails 2.3升級到3.2,並且我在日期轉換時遇到了麻煩。ActiveRecord從rails 2.3到3.2的日期轉換
在rails 2.3中,日期轉換的默認格式是mm/dd/yyyy,當我將這種格式的字符串分配給active_record模型時,它會正確轉換日期。例如,
我有軌3.2
user.registered_on = "10/03/2013" #=> March 10, 2013
用戶對象(active_record對象)和
在軌2.3
user.registered_on = "10/03/2013" #=> Oct 3, 2013
但同樣的事情,如何解決這一問題?
我已經嘗試在初始化文件之一中設置Date :: DATE_FORMATS [:default] ='%m /%d /%Y',但這沒有任何好處。
我甚至已經爲日期設置了語言環境,但那不起作用。重現此問題
一個完美的方式是:
創建兩個應用,一個在軌2.3.x版本的版本和在軌3.2.x中的其他版本。
使用至少一個日期時間字段在每個應用程序中創建一個模型。
爲兩個應用程序創建並遷移數據庫。
從每個應用程序中的終端轉到Rails控制檯。
創建一個active_record模型對象並將此「10/3/2013」字符串分配給日期時間字段,並查看結果都是不同的日期。
我只是需要一個解決方案,如何解決這一日期或日期時間轉換,使之同軌2.3
我依靠rails4但我認爲,這不應該改變什麼:'Date.parse「2013年3月10日」 =>週四,10月3日2013'確保沒有插件或的寶石,打破這種行爲? – phoet
你試過這個嗎? http://stackoverflow.com/questions/1610485/default-date-format-in-rails-need-it-to-be-ddmmyyyy#answer-8816063 –
我有一個tztime插件。這可能是一個問題嗎?但是這個插件已經被移植到了rails 2.3應用程序中,所以根據我的說法,這不應該打破這種行爲。此外,我已經檢查了該插件中的代碼,並沒有看到任何可以改變這種行爲的代碼。 –