Rails强参数 - POST一个json数组+一个额外的根字段

时间:2014-03-05 15:55:05

标签: ruby-on-rails json strong-parameters

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

{
    "root_field": "somedata",
    "myobjects": [
        {
            "attr1": "1",
            "attr2": 2",
            "attr3": "3"
        },
        {
            "attr1": "1",
            "attr2": "2",
            "attr3": "3"
        }
    ]
}

我将此作为强参数的代码,允许所有myobjects进入,但无法传递root_field,这在我的应用程序中很重要。

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

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

如果您希望将root_field列为标量值,则应为

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