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