Ruby on rails Rails强参数-发布json数组+;一个额外的根字段

Ruby on rails Rails强参数-发布json数组+;一个额外的根字段,ruby-on-rails,json,strong-parameters,Ruby On Rails,Json,Strong Parameters,我不确定我在这里做错了什么。我需要发布一个json对象,其中包含一个对象数组+一个额外的根字段。因此,对于此代码: { "root_field": "somedata", "myobjects": [ { "attr1": "1", "attr2": 2", "attr3": "3" }, { "attr1": "1",

我不确定我在这里做错了什么。我需要发布一个json对象,其中包含一个对象数组+一个额外的根字段。因此,对于此代码:

{
    "root_field": "somedata",
    "myobjects": [
        {
            "attr1": "1",
            "attr2": 2",
            "attr3": "3"
        },
        {
            "attr1": "1",
            "attr2": "2",
            "attr3": "3"
        }
    ]
}
我将此作为强参数的代码,它允许所有
myobjects
进入,但无法传递
root\u字段
,这在我的应用程序中很重要

def my_params
  params.require(:root_field)
  params.require(:myobjects).map do |e|
    ActionController::Parameters.new(e.to_hash).permit(:attr1,:attr2,:attr3)
  end
end

有什么想法吗?

如果您想将
根字段
列为标量值,它应该是

params.permit(:root_field)
params.permit(:myobjects => [:attr1,:attr2,:attr3])

但那能容忍没有根场吗?强参数主要目标是防止在批量分配中使用意外参数。在模型中(通过验证),或者在控制器中(如果参数不是模型的属性),验证参数的存在更合适。