【发布时间】:2016-02-02 12:08:09
【问题描述】:
我正在使用 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 中获得 params 时,我有:
{"permit1"=>data, "controller"=>"mycontroller", "action"=>"create", "require_attribute"=>{"permit1"=>1}}
Rails 似乎创建了一个带有所需键的哈希而不是引发错误。 但我想在收到 JSON 时强制使用 required 属性。
有人有想法吗?
【问题讨论】:
-
你用什么来发送那个“更简单”的 json?是否有角度/静止角度?
-
我在控制台或 Postman 插件中使用 curl
标签: ruby-on-rails ruby strong-parameters rails-api ruby-on-rails-5