【发布时间】:2017-10-16 14:36:18
【问题描述】:
我正在尝试使用 cocoon gem 保存嵌套模型。这是参数json:
Parameters: {
"utf8" => "✓",
"authenticity_token" => "w/hwSu6yvT/R+6KFdoi7L6v3tDYJppiXyvQigBfTpD6EuTVz9P2CKImybxgip90YA0Yo7QKpID+IeCi2KLsy0g==",
"project" => {
"client" => "1", "name" => "Project 1", "instances_attributes" => {
"1508163439344" => {
"instances" => {
"user_id" => "user1", "password" => "[FILTERED]", "service_url" => "http://localhost:3001"
}
}, "1508163446859" => {
"instances" => {
"user_id" => "user2", "password" => "[FILTERED]", "service_url" => "http://localhost:3002"
}
}
}
},
"commit" => "Create Project"
}
对于项目控制器中的强参数代码:
def project_params
params
.require(:project)
.permit(
:client, :name,
instances_attributes: Instance.attribute_names.map(&:to_sym).push(:_destroy)
)
end
现在当我尝试保存时,它显示:Unpermitted parameter: instances
我错过了什么?
【问题讨论】:
-
你试过instance_attributes,单数吗?另外我认为你必须将 :id 属性传递给 cocoon 列表,但我不确定
-
:id 由
Instance.attribute_names.map(&:to_sym)处理 -
@RajMishra 检查我的解决方案。它应该对你有用
-
实际上问题出在
reject_if..的proc模型中。