在Rails中允许JSON数组参数

时间:2018-03-12 15:35:41

标签: ruby-on-rails json

有点麻烦,我试图允许数组参数,我已经看到了这个例子...但是我还没有看到一个例子,其中数组是一个对象数组,顶级数组是其中之一被拉入的主要参数。

示例JSON:

{
  "message_json": {
    "device": {
      "deviceid": "002"
    },
     "measurements": 
        [
            {
          "temp": 71.45,
          "humidity": 31.5
            },
            {
            "temp": 75.34,
            "humidity": 35.9
            }
        ]
  }
}

许可的功能:

   def device_params
      params[:message_json].fetch(:device, {}).permit(:deviceid)
   end

   def measurement_params
      params[:message_json].fetch(:measurements, {}).permit(:temp,:humidity)
   end

所以measurement_params不起作用,我通常知道你会做array_obj: []之类的事情,但是这个数组对象已经是获取的measurements参数了吗?我该如何准许这些物品?

1 个答案:

答案 0 :(得分:1)

你有没有试过这样的事情:

def measurement_params
   params.require(:message_json).permit(measurements: [:temp, :humidity])
end

我现在无法测试。但我处理了这个问题并以这种方式解决了。