我有一个控制器使用require
和permit
的强参数。当我用邮递员测试这个端点时,我会得到类似的东西:
undefined method `permit' for "{foo: [1,2,3], bar: 1}":String
我知道当我通过 UI 发出帖子请求时这个控制器工作正常,但是每次使用邮递员测试都会给我这个错误。我将有效负载通过 raw 发送为 JSON(application/json)和带有相应内容类型的标头。
这是我通过的身体:
{
"foos": {"foo":[1,2,3], "bar": 2675}
}
def foos_params
params.require(:foos).permit(:foo, :bar)
end
2 回答
在标题选项卡中添加
Content-Type: Application/json
在我看来,
与邮差输入参数:
核心价值
foos [4]:[5]
# this is string: JSON.stringify([1,2,3]) => "[1,2,3]"
foos [7]:2675
在控制器中:
但是,我们需要将字符串转换为
:foo
的数组: