Rabl,删除孩子的父元素

时间:2012-04-11 16:24:10

标签: rabl

任何人都可以帮我摆脱“items

中的”item“元素

输出应为:
"list":{ "items":[ { { data1: "test" } , { data2: "test2" } } }

collection @list

child :items => :items do
  attributes :place_id
end

child :items do
  child :place do |place|
    extends 'places/place', object: place
  end
end

电流输出:
"list":{ "items":[{ "item":{data1: "test"} "item":{ data2: "test2"}}}

3 个答案:

答案 0 :(得分:7)

我遇到了同样的问题,这就是解决方案。您可能需要创建名为配置rabl的文件     配置/初始化/ rabl.config.rb

Rabl.configure do |config|
    config.include_json_root = true
    config.include_child_root =  false
end

答案 1 :(得分:1)

老问题,供将来用户参考:

启动文件rabl_init.rb,按config.include_json_root = false关闭root,如果您仍想在收集对象中使用root,请使用以下内容:

collection @orders, :object_root=>"order"
    extends "api/v1/orders/show"
# End of @orders

答案 2 :(得分:0)

有一个可行的解决方案,用于删除子节点中的根元素:Removing child root nodes in RABL

设置config.include_json_root = false似乎只删除了JSON的第一级根。