加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-4 – Rails 4多个嵌套表单和强参数

发布时间:2020-12-17 02:54:40 所属栏目:百科 来源:网络整理
导读:我使用rails 4和嵌套表单和强参数. 我需要从一个表单更新多个模型. 这就是我宣布强大参数的方式.从父控制器. 关联是has_many和belongs_to按此顺序运行Rundatum- Material- ParticleSize def rundatum_params params.require(:rundatum).permit( :material,:c
我使用rails 4和嵌套表单和强参数.

我需要从一个表单更新多个模型.

这就是我宣布强大参数的方式.从父控制器.
关联是has_many和belongs_to按此顺序运行Rundatum-> Material-> ParticleSize

def rundatum_params
    params.require(:rundatum).permit( :material,:company_id,:material_density,:feed_moisture,:date,:building,:machine,:material_weight,:time_mins,:rate_lb_hr,:mill_amps,:class_amps,:mill_liner,:beater_plate_size,:mill_rpm,:class_rpm,:feeder_type,:feeder_setting,:feeder_aug_diameter,:tlgs_set,:air_pressure,:temp_mill_out,:temp_prod_out,:temp_ambient,materials_attributes: [:id,:name,:density,:msds_url,:moisture,:notes,:_destroy],particle_sizes_attributes: [:id,:screen,:percent_through,:percent_retained,:_destroy])
end

rails服务器的输出是:

Rundatum Load (0.6ms)  SELECT  "rundata".* FROM "rundata"  WHERE "rundata"."id" = $1 LIMIT 1  [["id",7]]

Unpermitted parameters: particle_sizes_attributes

从一个表单更新多个模型时,声明强参数的方法是什么?

谢谢

解决方法

如果您将ParticleSize嵌套在Material中,那么您也应该嵌套参数.

def rundatum_params
  params.require(:rundatum).permit( :material,{ materials_attributes: [:id,:_destroy,{ particle_sizes_attributes: [:id,:_destroy] }] })
end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读