[英]Date converion from rails 2.3 to 3.2 in ActiveRecord
我正在從rails 2.3升級到3.2,我在使用Date轉換時遇到問題。
在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
如何解決這個問題?
我嘗試在其中一個初始化程序文件中設置Date :: DATE_FORMATS [:default] ='%m /%d /%Y',但這沒有任何好處。
我甚至為日期設置了語言環境,但這不起作用。
重現此問題的一個完美方法是:
創建兩個應用程序,一個在rails 2.3.x版本中,另一個在rails 3.2.x版本中。
使用至少一個日期時間字段在每個應用程序中創建一個模型。
為這兩個應用程序創建和遷移數據庫。
在每個應用程序中從終端轉到rails控制台。
創建一個active_record模型對象,並將此“10/3/2013”字符串分配給datetime字段,並查看結果都是不同的日期。
我只需要一個解決方案,如何修復此日期或日期時間轉換並使其與rails 2.3相同
gem“american_date”解決了這個問題。
我猜你已經升級了ruby版本?
$ ruby --version
ruby 1.8.7
$ ruby -r date -e "puts Date.parse('10/3/2013').month"
10
$ ruby --version
ruby 1.9.3p327
$ ruby -r date-e "puts Date.parse('10/3/2013').month"
3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.