删除RABL中的子根节点

BBo*_*eld 24 ruby ruby-on-rails rabl

我正在尝试使用RABL呈现一个非常简单的数据结构,但我无法弄清楚如何正确删除子根节点.这是我的两个模板.

首先是集合索引模板.

collection @groups, :object_root => false

attributes :id, :name
child :files do
  extends 'groups/_file'
end
Run Code Online (Sandbox Code Playgroud)

接下来,文件部分模板.

object @file

attributes :id
Run Code Online (Sandbox Code Playgroud)

这两个模板最终生成以下JSON:

[
   {
      "id":"4f57bf67f85544e620000001",
      "name":"Some Group",
      "files":[
         {
            "file":{
               "id":"4f5aa3fef855441009000007"
            }
         }
      ]
   }
]
Run Code Online (Sandbox Code Playgroud)

我想找到一种方法来删除文件集合中的根"文件"键.就像是:

[
   {
      "id":"4f57bf67f85544e620000001",
      "name":"Some Group",
      "files":[
         {
            "id":"4f5aa3fef855441009000007"
         }
      ]
   }
]
Run Code Online (Sandbox Code Playgroud)

mat*_*aso 48

在Rabl的最新版本,你必须设置此配置,如果你想include_root_json成为false在各个层面.

Rabl.configure do |config|
  config.include_json_root = false
  config.include_child_root = false
end
Run Code Online (Sandbox Code Playgroud)


kaw*_*wty 12

尝试更换:

    child :files do
      extends 'groups/_file'
    end
Run Code Online (Sandbox Code Playgroud)

有:

    node :files do |group|
      group.files.map do |file|
        partial 'groups/_file', object: file, root: false
      end
    end
Run Code Online (Sandbox Code Playgroud)

  • 那很完美.谢谢! (2认同)