include_root_in_json无法正常工作

时间:2012-03-22 00:43:44

标签: ruby-on-rails json serialization activemodel

我在父模型中实现了as_json,如下所示:

def as_json(options = {})
  options[:include] = :items
  super(options)
end

include_root_in_json = true已在配置中设置。

我得到的是:

[
    {
        "order": {
            "items": [
                {
                    "key1": "value1"
                },
                {
                    "key1":"value2"
                }
            ],
            "key1": "value1"
        }
    }
]

但我想要的是:

[
    {
        "order": {
            "items": [
                {
                    "item": {
                        "key1": "value1"
                    }
                },
                {
                    "item": {
                        "key1": "value2"
                    }
                }
            ],
            "key1": "value1"
        }
    }
]

因此,嵌套关联不包含根名称。这是一个错误还是我错过了什么?

1 个答案:

答案 0 :(得分:0)

据我所知,“include_root_in_json”对嵌套属性不起作用,但只在非常类似于:

[
  {
    "videos": {
      "video": [
        "id": 1
      ]
    }
  }
]

对于此示例,它将删除“视频”根目录。

提示 我发现as_json并不是很好,如果你正在建立一个像你需要非常灵活的API的东西。出于这个原因,我正在使用RABL,mabye你应该试一试https://github.com/nesquena/rabl