@object.as_json
as_json a un moyen très flexible de configurer des objets complexes en fonction des relations de modèle
EXEMPLE
La campagne modèle appartient à la boutique et a une liste
La liste de modèles comporte de nombreuses list_tasks et chacune des list_tasks contient de nombreux commentaires
Nous pouvons obtenir un json qui combine toutes ces données facilement.
@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
})
Remarquez les méthodes:: les balises peuvent vous aider à attacher tout objet supplémentaire qui n'a pas de relations avec d'autres. Il vous suffit de définir une méthode avec des tags de nom dans la campagne modèle . Cette méthode devrait renvoyer tout ce dont vous avez besoin (par exemple, Tags.all)
Documentation officielle pour as_json