Ruby on rails jbuilder合并2个Json数据并将其发送到一个键
我使用rails 5和jbuilder发送json。我面临的问题是我想合并2个表json并将其发送到同一个键 我的json.jbuilder如下所示Ruby on rails jbuilder合并2个Json数据并将其发送到一个键,ruby-on-rails,json,hash,ruby-on-rails-5,Ruby On Rails,Json,Hash,Ruby On Rails 5,我使用rails 5和jbuilder发送json。我面临的问题是我想合并2个表json并将其发送到同一个键 我的json.jbuilder如下所示 json.children env.sites do |site| json.nodeId "site_#{site.id}" json.type "site" json.extract! site,:id, :key, :name json.children site.networks do |network| json.
json.children env.sites do |site|
json.nodeId "site_#{site.id}"
json.type "site"
json.extract! site,:id, :key, :name
json.children 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.children site.instances do |instance|
json.type "host"
json.extract! instance,:id, :name
json.content do
json.cpu instance.cpu
end
end
end
我在这里面临的问题是,我想在同一个密钥中合并site.networks和site.instances。。我将如何实现这一点..???您可以使用
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
和你的钥匙一样?当前和预期的json输出是什么?当前的输出是用site.instances数据覆盖子键,预期的是它应该合并site.networks和site.instances jsonit没有多大帮助。你不能合并任何东西。你的很多键都是一样的,你能发布预期的json输出吗?什么需要数组,什么需要散列?解决方案可行,但在我的例子中,另一个要求是缓存。我可以将上述情况下的“site.networks”数组缓存为#json.cache_集合吗!site.networks,键:'site_network|u array'do | network |。。。。。。。。结束