【问题标题】:Generating JSON with RABL, using a collection as a child node of the root object使用 RABL 生成 JSON,使用集合作为根对象的子节点
【发布时间】:2014-02-28 19:32:46
【问题描述】:

我正在尝试使用 RABL 生成 JSON,我的 index.rabl 视图如下所示:

collection @products => :products
  attributes :id, :name, :price, :category_id

node(:total) {@products.count}

这会生成具有以下结构的 JSON:

{"products":[{"id":1,"name":"product name","price":0.00,"category_id":1,"total":30}, 
             {"id":2,"name":"product2 name","price":0.00,"category_id":1,"total":30},...]}

但是,我希望生成的 JSON 的结构如下所示:

{  "products":[{"id":1,"name":"product name","price":0.00,"category_id":1}, 
               {"id":2,"name":"product2 name","price":0.00,"category_id":1},...],  
   "total":30
}

这意味着我想从 "products" 数组中取出 "total":30 并将其放入生成的 JSON 的根对象中。我需要对视图文件进行哪些更改才能生成所需的 JSON?我对 RABL 的经验很少,我们将不胜感激。

【问题讨论】:

    标签: ruby-on-rails json rabl


    【解决方案1】:

    在您的 index.json.rabl 中,您可以这样做:

    object false
    child @events do
      attributes :id, :message
    end
    node(:count) { @events.size }
    

    结果是:

    {
        "count": 50,
        "events": [
            {
                "id": 124,
                "message": "Hola"
            },
            {
                "id": 123,
                "message": "Chau"
            },
            {
                "id": 122,
                "message": "Yeah baby!"
            }
        ]
    }
    

    我已经在我的项目中对此进行了测试。您可以使用产品更改事件...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 2015-10-31
      • 1970-01-01
      • 2018-12-30
      相关资源
      最近更新 更多