Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 Rails:仅更新datetime字段的小时和分钟_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 4 Rails:仅更新datetime字段的小时和分钟

Ruby on rails 4 Rails:仅更新datetime字段的小时和分钟,ruby-on-rails-4,Ruby On Rails 4,进程表中有一个datetime类型的字段start_time。初始值设置为Time.zone.now。之后,不允许用户更改日期,只允许更改开始时间字段的小时和分钟 因此,向用户提供的编辑表单仅显示小时:分钟,如“22:43”,但提交表单时,字段值更改为当前日期和时间。在控制器中,我使用了标准rails语句来更新值: @process = Process.find(params[:id]) @process.update(process_params) 在参数中,我得到的开始时间为“20:40

进程表中有一个datetime类型的字段start_time。初始值设置为Time.zone.now。之后,不允许用户更改日期,只允许更改开始时间字段的小时和分钟

因此,向用户提供的编辑表单仅显示小时:分钟,如“22:43”,但提交表单时,字段值更改为当前日期和时间。在控制器中,我使用了标准rails语句来更新值:

@process = Process.find(params[:id])
@process.update(process_params) 
在参数中,我得到的开始时间为“20:40”

还尝试了该方法,但它没有保存更改,而是回滚

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