Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.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 以rails多步骤表单管理时区_Ruby On Rails - Fatal编程技术网

Ruby on rails 以rails多步骤表单管理时区

Ruby on rails 以rails多步骤表单管理时区,ruby-on-rails,Ruby On Rails,我有一个在会话表中存储数据的多步骤表单。在存储数据之前,我通过创建带有时区代理的@offset变量来弥补时差 @offset = DateTime.now.in_time_zone(params[:event][:time_zone]).utc_offset / 3600 params[:event][:google_address] = current_user.google_address if params[:event][:google_address].blank? par

我有一个在会话表中存储数据的多步骤表单。在存储数据之前,我通过创建带有时区代理的@offset变量来弥补时差

  @offset = DateTime.now.in_time_zone(params[:event][:time_zone]).utc_offset / 3600
  params[:event][:google_address] = current_user.google_address if params[:event][:google_address].blank?
  params[:event][:start] = DateTime.strptime(params[:event][:start], "%m/%d/%Y %l:%M %P")  - @offset.hours
  params[:event][:end] = DateTime.strptime(params[:event][:end], "%m/%d/%Y %l:%M %P") - @offset.hours
  session[:event_params].deep_merge!(params[:event]) if params[:event]
这很好,但是如果用户返回到前面的步骤(保存表单之前),表单会返回GMT时间。我想在输入字段中重新显示用户时区中的时间


有人知道这个诀窍吗?

一旦你有了数据,你就可以在用户会话中存储
参数[:事件][:时区]

会话[:时区]=参数[:事件][:时区]

在上一步中,您可以访问此表单并相应地显示表单

session[:timezone]#将为零或值