2017-07-02 10 views
1

ich dieses Stück Code habe in meinen update.json.jbuilderRails 5.1 .: Jbuilder Format einzelnes JSON-Objekt in Array

json.data do 
    json.(@user_group, :id, :name, :description) 
    json.users @user_group.users, :id, :name 
    json.roles @user_group.roles, :id, :name 
end 

, die mir dieses JSON gibt:

{ 
    "data":{ 
     "id":95, 
     "name":"Management group", 
     "description":"This is management group", 
     "users":[ 
     { 
      "id":10, 
      "name":"Test User" 
     } 
     ], 
     "roles":[ 
     { 
      "id":1, 
      "name":"FULL ACCESS (TEMPORARY)" 
     } 
     ] 
    } 
} 

Wie kann ich Daten wrap“ "In einer Reihe zu so etwas, bitte?

{ 
    "data": [ 
    { 
     "id":95, 
     "name":"Management group", 
     "description":"This is management group", 
     "users":[ 
     { 
      "id":10, 
      "name":"Test User" 
     } 
     ], 
     "roles":[ 
     { 
      "id":1, 
      "name":"FULL ACCESS (TEMPORARY)" 
     } 
     ] 
    } 
] 
} 

Hinweis [] nach dem ersten und letzten {} Bisher habe ich versucht, json.array! zu implementieren, aber kein Glück, wie es mir wirft ActionView::Template::Error (undefined method map was bedeutet, ich versuche, etwas zusammen zu stellen, die wohl tut passt nicht as mentioned here.

Antwort

1

Mit child! method scheint es so einfach zu sein:

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 
Verwandte Themen