2017-07-02 84 views
1

我有這樣一段代碼在我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

回答

1

隨着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