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]))
希望这会帮助你。