我正在使用 Rails 5 创建 JSON Api。
我的控制器使用带有一个require属性的强参数,如下所示:
params.require(:require_attribute).permit(:permit_attribute1,:permit_attribute2)
通常我必须像这样发送我的 JSON:
{
"require_attribute":{
"permit_attribute1": "data",
"permit_attribute2": "data"
}
}
如果缺少必需的属性,我必须得到这个消息:
"ActionController::ParameterMissing: param is missing or the value is empty: require_attribute"
我的问题是,如果我从 JSON 中删除所需的属性并且我有一个permit
与强参数共同的属性,它确实有效。
我发送的 JSON:
{
"permit_attribute1": "data",
}
当我得到参数时,log
我有:
{"permit1"=>data, "controller"=>"mycontroller", "action"=>"create", "require_attribute"=>{"permit1"=>1} }
似乎 Rails 创建了一个带有所需键的散列,而不是引发错误。但是我想在收到 JSON 时强制使用所需的属性。
有人有想法吗?