我正在尝试使用jbuilder从rails构建一些json输出。我有类似的东西:
json.links do | i |
i.array!( @links ) do | j, link |
j.source link['source']
j.target link['target']
j.stats do | s |
[ 'item1', 'item2' ].each { |item|
s.item statistics_path( :source => link['source'], :metric => item )
}
end
end
end
当然,结果如下:
{
links: [
source: "a",
target: "b",
stats: {
item: 'url for item2'
}
]
}
当我真正想要的东西:
{
links: [
source: "a",
target: "b",
stats: {
item1: 'url for item1',
item2: 'url for item2'
}
]
}
任何想法?
答案 0 :(得分:7)
您可以使用:
json.set!(:item1, "stuff")
在你的情况下:
json.links do | i |
i.array!( @links ) do | j, link |
j.source link['source']
j.target link['target']
j.stats do | s |
[ 'item1', 'item2' ].each { |item|
s.set!(item, statistics_path( :source => link['source'], :metric => item ))
}
end
end
end