在ROR

2011-06-22 27 views
1

我試圖建立一個ROR應用程序,允許用戶在不同的格式,如11年12月31日(月/日/年)或31/12/11輸入日期處理不同的日期格式(日/月/年)。爲了解釋日期格式,我將有一個選擇字段,用戶可以從中選擇日期格式。在保存記錄之前,我可以在控制器中使用Date.strptime(value, format).to_s()在ROR

但是,我不知道是把這個信息控制權的地方。有沒有一種方法可以推動這個模型...在保存方法之前。

回答

0

你可以只保存數據,因爲它是(控制器),並在模型告訴它如何解讀該數據的另一領域。然後,在before_validation回調,你可以嘗試根據給定的格式解析日期,將其寫入同一個領域,現在作爲一個日期。回來的路上可能會出現問題。然後,在視圖中再次顯示它,你可以寫幫手 - 但更重要的是,提供的模型的方法(例如,FORMATTED_DATE),將計算和顯示日期。

然而,這個要求聽起來很奇怪。爲什麼用戶有責任選擇日期格式?它不應該基於用戶區域設置嗎?

在任何情況下,我建議您在初始化程序中註冊您的日期格式,而不是在整個應用程序中重複格式字符串。