Rails 5保存时未允许的参数

时间:2016-12-12 12:25:14

标签: ruby-on-rails ruby-on-rails-5 strong-parameters

我正在处理两个模型SubmissionTagSubmission has_one :tag。在我的控制器中,我设置了submission_params,如下所示:

params.require(:submission).permit(:domain, tag_attributes:[:tag_text, :notes])

但是,我收到错误:Unpermitted parameter: tag

从我的日志中:

Parameters: {"utf8"=>"✓", "authenticity_token"=>"BEJZXOERC3cGSZFlAL91kRJgR+YFcHd6+yMYilDyu/NyN1YviwahKwrifAQfWMdu53/NYCnOVD4NHNXSZmPk7Q==", "submission"=>{"domain"=>"test", "tag"=>{"tag_text"=>"test tag", "notes"=>"test"}}, "commit"=>"Submit"}

也许我只是生锈而且忽略了某些东西,或者rails5是否有一个处理强力障碍的新技巧?提前谢谢!

2 个答案:

答案 0 :(得分:1)

如果是

accepts_nested_attributes :tag

以下是您允许的方式:

# :_destroy is for being able to delete the nested tag
params
  .require(:submission)
  .permit(:domain, tag_attributes: %i(id submission_id tag_text notes _destroy))

答案 1 :(得分:0)

您必须发送tag_attributes param而不是tag - 请参阅日志输出