ho questo modello Rabl:Rabl: oggetti JSON senza radice chiave
object @photo
attributes :id
child :comments do
attributes :id, :body
end
che mi dà questa risposta JSON:
{
photo: {
id: 1,
comments: [
{
comment: {
id: 1,
body: 'some comment'
}
},
{
comment: {
id: 2,
body: 'another comment'
}
}
]
}
}
ma voglio farlo sembrare come questo:
{
id: 1,
comments: [
{
id: 1,
body: 'some comment'
},
{
id: 2,
body: 'another comment'
}
]
}
Perché rabl avvolge ogni elemento dell'array con un oggetto aggiuntivo chiamato comment
. In questo modo, quando accedo la collezione in javascript devo scrivere:
var comment = image.comments[0].comment
invece di:
var comment = image.comments[0]
So che se mi includo :comments
nella lista attributi per l'oggetto @photo
funziona il modo che voglio, ma quando voglio un altro livello di associazioni nidificate per ogni oggetto comment
, non c'è un modo per gestirlo oltre all'uso di child
, ma questo mi dà la risposta JSON che non desidero.
Forse sto solo fraintendendo tutto - qualcuno può spiegare o aiutare? Grazie!
Ho avuto questo stesso problema e ha scoperto che avevo bisogno di aggiungere "config.include_child_root = false" in aggiunta a include_json_root = false –