的Rails 5.1:Jbuilder的格式单一的JSON对象数组
问题描述:
我有这样一段代码在我update.json.jbuilder
的Rails 5.1:Jbuilder的格式单一的JSON对象数组
json.data do
json.(@user_group, :id, :name, :description)
json.users @user_group.users, :id, :name
json.roles @user_group.roles, :id, :name
end
这给了我这个JSON:
{
"data":{
"id":95,
"name":"Management group",
"description":"This is management group",
"users":[
{
"id":10,
"name":"Test User"
}
],
"roles":[
{
"id":1,
"name":"FULL ACCESS (TEMPORARY)"
}
]
}
}
如何包装“数据“为了这样的事情,好吗?
{
"data": [
{
"id":95,
"name":"Management group",
"description":"This is management group",
"users":[
{
"id":10,
"name":"Test User"
}
],
"roles":[
{
"id":1,
"name":"FULL ACCESS (TEMPORARY)"
}
]
}
]
}
通知[]后第一个和最后{} 到目前为止,我一直在努力执行json.array!
,但没有运气,因为它抛出我ActionView::Template::Error (undefined method map
这意味着我试图整理一些东西,大概会不适合as mentioned here。
答
随着child! method它似乎是这样的简单:
json.data do
json.child! do
json.(@user_group, :id, :name, :description)
json.users @user_group.users, :id, :name
json.roles @user_group.roles, :id, :name
end
end