Ruby on rails Rails-如何连接多个post参数以创建模型属性

Ruby on rails Rails-如何连接多个post参数以创建模型属性,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我有一个模型,它有三个datetime属性date、time\u in和time\u out 在我的UI中,我有以下虚拟属性表单字段: 日期:年月日 时间单位:HH:MM 超时\u v:HH:MM 在before_validation上,我希望在保存之前创建正确的时间属性。我拥有的函数可以创建时间值,这没有问题,但是我的问题是能够从表单中访问虚拟属性的值 我在我的模型中尝试过-在验证之前,我也在我的控制器中尝试过创建和更新之前的操作 我是Rails/MVC新手,我不确定我应该去哪里/如何去做

我有一个模型,它有三个datetime属性date、time\u in和time\u out

在我的UI中,我有以下虚拟属性表单字段:

  • 日期:年月日
  • 时间单位:HH:MM
  • 超时\u v:HH:MM
在before_validation上,我希望在保存之前创建正确的时间属性。我拥有的函数可以创建时间值,这没有问题,但是我的问题是能够从表单中访问虚拟属性的值

我在我的模型中尝试过-在验证之前,我也在我的控制器中尝试过创建和更新之前的操作

我是Rails/MVC新手,我不确定我应该去哪里/如何去做。我找到的所有提交前处理数据的示例都是过滤一个值,而不是合并两个不同的值,我无法确定如何访问所需的值

下面是我正在使用的函数。两者都不起作用。控制器抛出一个错误。模型1返回无效,因为未设置日期时间字段

任何提示都将不胜感激

模型-验证前 控制器-操作前 编辑/更新

我注意到这个q上的向上投票,所以我最终使用了以下解决方案:

我开始过滤控制器中的值。我第一次尝试失败的原因是我没有正确访问参数

它需要:

params[:model][:parameter]
当我尝试访问时:

params[:parameter]
我的解决方案:

before_action :set_datetimes, only: [:create, :update]

 def set_datetimes
      if params[:dive][:date_v].present? && params[:dive][:time_in_v].present? && params[:dive][:time_out_v].present?
        params[:dive][:date] = Time.parse( params[:dive][:date_v] + ' ' + params[:dive][:time_in_v] + ':00 UTC')
        params[:dive][:time_in] = params[:dive][:date]
        params[:dive][:time_out] = Time.parse( params[:dive][:date_v] + ' ' + params[:dive][:time_out_v] + ':00 UTC')
      end
  end
params[:parameter]
before_action :set_datetimes, only: [:create, :update]

 def set_datetimes
      if params[:dive][:date_v].present? && params[:dive][:time_in_v].present? && params[:dive][:time_out_v].present?
        params[:dive][:date] = Time.parse( params[:dive][:date_v] + ' ' + params[:dive][:time_in_v] + ':00 UTC')
        params[:dive][:time_in] = params[:dive][:date]
        params[:dive][:time_out] = Time.parse( params[:dive][:date_v] + ' ' + params[:dive][:time_out_v] + ':00 UTC')
      end
  end