@object.as_json
as_json ha un modo molto flessibile di configurare oggetti complessi in base alle relazioni del modello
ESEMPIO
La campagna modello appartiene allo shop e ha un elenco
L' elenco dei modelli ha molti list_tasks e ognuno di list_tasks ha molti commenti
Possiamo ottenere un json che combina facilmente tutti quei dati.
@campaign.as_json(
{
except: [:created_at, :updated_at],
include: {
shop: {
except: [:created_at, :updated_at, :customer_id],
include: {customer: {except: [:created_at, :updated_at]}}},
list: {
except: [:created_at, :updated_at, :observation_id],
include: {
list_tasks: {
except: [:created_at, :updated_at],
include: {comments: {except: [:created_at, :updated_at]}}
}
}
},
},
methods: :tags
})
Metodi di avviso : i tag possono aiutarti a collegare qualsiasi oggetto aggiuntivo che non ha relazioni con gli altri. Devi solo definire un metodo con le etichette nome nella campagna modello . Questo metodo dovrebbe restituire tutto ciò di cui hai bisogno (ad esempio Tags.all)
Documentazione ufficiale per as_json