2013-07-03 14 views
1

我有一個名爲date的日期:datetime。我試圖將那個巨大的日期時間字符串保存到數據庫中的一個簡單的MM/DD/YYYY中,但沒有任何運氣。我已經試過了「american_date」寶石,並試圖在此模型中一個單獨的呼叫:將日期時間更改爲簡單的%m /%d /%Y在數據庫中使用rails

after_save :change_date 

def change_date 
    self.date.strftime("%m/%d/%Y") 
end 

這些都沒有,雖然工作。任何幫助?感謝堆棧!

+2

爲什麼要更改存儲格式?你不能使用'date_format()'(在mysql的情況下)根據你的喜好顯示? – vee

+0

首先,您在修改日期屬性後未保存對象。第二:如果在after_save回調中設置(修改)屬性,如果將其保存在change_date中,則會再次調用after_save,這將修改變量等等。然後,@vinodadhikary是對的,你不應該「抱怨」數據庫內的格式,因爲你可以在顯示器上將其更改爲你想要的格式。 – MrYoshiji

+0

我是Rails新手,所以我正在學習。那麼更新格式的正確方法是什麼?更改格式的原因是因爲它是通過XML傳遞的,而接收對象需要這種格式。這不是關於Web應用程序的顯示,而是接收實體所需的格式。 – Devan

回答

2

試試這個:

添加文件到config用下面的代碼/初始化:

Date::DATE_FORMATS[:default]="%m/%d/%Y" 
Time::DATE_FORMATS[:default]="%m/%d/%Y %H:%M" 
Time::DATE_FORMATS[:db]="%m/%d/%Y" 

,看到了railcast

相關問題