首页 文章

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

提问于
浏览
0

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

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 回答

  • 1

    在标题选项卡中添加Content-Type: Application/json
    在此输入图像描述

  • 0

    在我看来,

    与邮差输入参数:

    核心价值

    foos [4]:[5] # this is string: JSON.stringify([1,2,3]) => "[1,2,3]"

    foos [7]:2675

    在控制器中:

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

    但是,我们需要将字符串转换为:foo的数组:

    ActiveSupport::JSON.decode(foos_params[:foo]) # => [1, 2, 3]
    

相关问题