@object.as_json
as_json bietet eine sehr flexible Möglichkeit, komplexe Objekte gemäß Modellbeziehungen zu konfigurieren
BEISPIEL
Modell Kampagne gehört zu Geschäft und hat eine Liste
Modell - Liste hat viele list_tasks und jeder von list_tasks hat viele Kommentare
Wir können einen JSON bekommen, der all diese Daten leicht kombiniert.
@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
})
Hinweismethoden :: Mithilfe von Tags können Sie zusätzliche Objekte anhängen, die keine Beziehung zu anderen haben. Sie müssen nur eine Methode mit Namen definieren Tags in Modell - Kampagne . Diese Methode sollte alles zurückgeben, was Sie benötigen (z. B. Tags.all).
Offizielle Dokumentation für as_json