【问题标题】:include_root_in_json not working properlyinclude_root_in_json 无法正常工作
【发布时间】:2012-04-06 13:58:09
【问题描述】:

我在父模型中实现了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"
        }
    }
]

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

【问题讨论】:

    标签: ruby-on-rails json serialization activemodel


    【解决方案1】:

    据我所知,“include_root_in_json”不适用于嵌套属性,但仅适用于根目录,例如:

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

    对于本示例,它将删除“视频”根。

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

    【讨论】:

      猜你喜欢
      • 2016-12-01
      • 1970-01-01
      • 2016-09-01
      • 2012-07-11
      • 2018-04-08
      • 2017-04-20
      • 2018-10-02
      • 2016-09-04
      • 2010-10-06
      相关资源
      最近更新 更多