邮差发送请求Rails API强params错误

时间:2017-06-30 06:30:17

标签: ruby-on-rails parameters postman

我有一个控制器,它使用requirepermit的强参数。当我用邮递员测试这个端点时,我会继续得到类似的东西:

undefined method `permit' for "{foo: [1,2,3], bar: 1}":String

我知道当我通过用户界面发出帖子请求时,这个控制器工作正常,但每次使用邮递员测试都会给我这个错误。我通过raw作为JSON(application / json)和带有相应内容类型的标头发送我的有效负载。

这是我通过的身体:

{
    "foos": {"foo":[1,2,3], "bar": 2675}
}

enter image description here

  def foos_params
    params.require(:foos).permit(:foo, :bar)
  end

2 个答案:

答案 0 :(得分:1)

在标题标签中添加Content-Type: Application/json enter image description here

答案 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]