我想使用表单上的两个元素更新datetime属性:text_field和time_select。这将使用户能够使用datepicker(jquery ui)和使用下拉菜单的时间来选择日期:
但是,当我尝试更新更新表单时,出现以下错误:
ActiveRecord::MultiparameterAssignmentErrors in StepsController#update
1 error(s) on assignment of multiparameter attributes
Parameters:
{"utf8"=>"✓",
"_method"=>"put",
"authenticity_token"=>"FxFbv9OFzCiYjNknZKUtwyAXR99uuOvy8uplv1cKaZE=",
"step"=>{"description"=>"<p>Project description</p>\r\n",
"published_on"=>"05/30/2013",
"published_on(4i)"=>"15",
"published_on(5i)"=>"19"},
"commit"=>"Update Step",
"project_id"=>"92",
"id"=>"0"}
如何将text_field和time_select中的参数合并到一个日期时间?
这是我的表格:
<%= f.text_field :published_on, :value=> (@step.published_on.strftime("%m/%d/%Y")) %> at <%= f.time_select :published_on, :class=>"btn dropdown-toggle", :ampm=> true, :ignore_date=>true %>
答案 0 :(得分:0)
这是ViewModels可能有用的场景,但进入它会有点过分。
因此,我想到的最佳选择是在客户端合并值,或者在服务器端合并值,然后在params
变量构建对象之前合并值。
在服务器端,可以使用动作控制器过滤器实现:
before_filter :merge_somefileds!, only: [:edit]
更多信息:http://guides.rubyonrails.org/action_controller_overview.html#filters