Rails:仅更新日期时间字段的小时和分钟

Rails:仅更新日期时间字段的小时和分钟

问题描述:

在进程表中有一个类型为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]}) 

我想只更新字段日期的小时和分钟应该保持不变。

change方法返回更改时间或日期,但没有更新活动记录它自己。

你可以做这个更新。

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

希望这会帮助你。