[英]Rails 5: Unpermitted parameter
我正在嘗試用繭形寶石保存嵌套模型。 這是params 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
我想念什么?
您有2個解決方案:
允許所有instances_attributes
內容:
def project_params params.require(:project).permit(:client, :name).permit!(:instances_attributes) end
允許所有instances_attributes
鍵:
def project_params instances_keys = (params[:project] || {})[:instances_attributes].keys params.require(:project).permit(:client, :name, instances_attributes: instances_keys) end
你有沒有注意到你的params.Inside instances_attributes
您有一個名為*再嵌套哈希instances
。 因此,您還需要允許他們。 如下更新您的project_params
def project_params
params
.require(:project)
.permit(
:client, :name,
instances_attributes: [:instances=> Instance.attribute_names.map(&:to_sym).push(:_destroy)]
)
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.