2016-08-22 118 views
1

在進程表中有一個類型爲datetime的字段start_time。初始值設置爲Time.zone.now。之後,用戶不允許更改日期,只允許更改start_time字段的小時和分鐘。Rails:僅更新日期時間字段的小時和分鐘

因此,向用戶提供的編輯表單僅顯示像「22:43」這樣的小時:分鐘,但當提交表單時,字段值更改爲當前日期和時間。在控制器中我使用了標準導軌語句更新的值:

@process = Process.find(params[:id]) 
@process.update(process_params) 

在PARAMS我得到的START_TIME爲「20:40」

也試過change方法,但它不保存改變而不是回滾。

hour_minute = params[:process][:start_time].split(":") 
@process.start_time.change({hour: hour_minute[0], min: hour_minute[1]}) 

我想只更新字段日期的小時和分鐘應該保持不變。

回答

2

change方法返回更改時間或日期,但沒有更新活動記錄它自己。

你可以做這個更新。

hour_minute = params[:process][:start_time].split(":") 
@process.update(start_time: @process.start_time.change(hour: hour_minute[0], min: hour_minute[1])) 

希望這會幫助你。

相關問題