Rails 5 保存时不允许的参数
Rails 5 Unpermitted Parameter Upon Save
我正在使用两个模型 Submission
和 Tag
。 Submission
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 有处理强参数的新技巧吗?提前致谢!
你必须发送 tag_attributes
参数而不是 tag
- 看你的日志输出
如果这是
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))
我正在使用两个模型 Submission
和 Tag
。 Submission
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 有处理强参数的新技巧吗?提前致谢!
你必须发送 tag_attributes
参数而不是 tag
- 看你的日志输出
如果这是
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))