2015-06-28 79 views
1

作爲一個有點初學者的程序員,這個問題多年來一直困擾着我。我有一個jQuery日期時間選擇器,填寫表格字段的日期格式爲MM/DD/YYYY又名06/27/2015。數據庫似乎不會保存日期,除非它的格式爲YYYY/MM/DD。但是,儘管我的數據庫感覺如何,但我喜歡這種格式,因爲用戶知道如何閱讀它。Rails強大的參數datetime picker正確的數據庫格式

所以我有一個錯誤格式的日期,當它來到我的控制器。我可以使用strftime在保存之前編輯日期。但我很懶,因爲仍然想用強參數來創建我的條目。

def create 
    Statistic.create(statistic_params) 
end 
def statistic_params 
    params.require(:statistic).permit(:entry_date) 
end 

什麼是調整日期格式以便數據庫識別它並讓我的用戶滿意的最佳方式?

回答

1

在您的統計模型中,您可以使用before_save方法更改entry_date屬性,該方法可以讓您在保存到數據庫之前更改屬性,以便您不必擔心強參數。

class Statistic < ActiveRecord::Base 

    before_validation :set_entry_date 

    def set_enty_date 
    self.entry_date = DateTime.strptime(self.entry_date, "%m/%d/%Y").strftime("%Y/%m/%d") 
    end 

end 
+0

當我以'MM/DD/YYYY'格式傳遞時,我似乎無法訪問模型中的'entry_date'。另外,我想我需要使用'strptime'。我仍然使用強參數,因爲我還有其他15個屬性可以保存。任何其他想法? – thedanotto

+0

是否驗證了entry_date,因爲如果驗證失敗,before_save將不會被調用。無論如何,我正在編輯答案。另外我想你的格式化時間是正確的。 – Burak

+0

讓我今晚有點玩這個,讓你知道。感謝您的幫助。 – thedanotto