Ruby on rails 4 Rails:仅更新datetime字段的小时和分钟
进程表中有一个datetime类型的字段start_time。初始值设置为Time.zone.now。之后,不允许用户更改日期,只允许更改开始时间字段的小时和分钟 因此,向用户提供的编辑表单仅显示小时:分钟,如“22:43”,但提交表单时,字段值更改为当前日期和时间。在控制器中,我使用了标准rails语句来更新值: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
@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]))
希望这对你有帮助