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

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

概述我使用rails 4和嵌套表单和强参数. 我需要从一个表单更新多个模型. 这就是我宣布强大参数的方式.从父控制器. 关联是has_many和belongs_to按此顺序运行Rundatum-> Material-> ParticleSize def rundatum_params params.require(:rundatum).permit( :material, :company_i 我使用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" =  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
总结

以上是内存溢出为你收集整理的ruby-on-rails-4 – Rails 4多个嵌套表单和强参数全部内容,希望文章能够帮你解决ruby-on-rails-4 – Rails 4多个嵌套表单和强参数所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1286754.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存