Json.jbuilder合并2个json数据并将其发送到一个密钥

时间:2017-07-04 13:06:10

标签: ruby-on-rails json hash ruby-on-rails-5

我正在使用rails 5,我正在使用jbuilder发送json。我面临的问题是我想合并2表json并将其发送到相同的密钥..

我的json.jbuilder看起来像这样

10^9

问题我面临的问题是我想将site.networks和site.instaces合并到同一个密钥中。我将如何实现这个目标.. ??

1 个答案:

答案 0 :(得分:2)

您可以使用json.array!

试试这个,

json.children env.sites do |site|
  json.nodeId "site_#{site.id}"
  json.type "site"
  json.extract! site,:id, :key, :name
  json.children do
    json.array!(site.networks) do |network|
      json.nodeId "network_#{network.id}"
      json.type "network"
      json.extract! network,:id, :name
      json.children network.vlans do |vlan|
        json.type "vlan"
        json.extract! vlan,:id, :name
      end
    end
    json.array!(site.instances) do |instance|
      json.type "host"
      json.extract! instance,:id, :name
      json.content do
        json.cpu instance.cpu
      end
    end
  end
end