Also in meiner Rails App gibt es Listen. Jede Liste hat ein Element. Jeder Artikel hat viele Artikel. So kann ein Item zu einem anderen Item gehören. Ich möchte diese Ressourcen als JSON darstellen, wo die untergeordneten Elemente jedes Elements darunter verschachtelt sind. Da jedes Element möglicherweise eigene untergeordnete Elemente haben kann, kann ich nicht einfach die Option include: verwenden, da ich nicht wissen würde, wann das letzte Element keine untergeordneten Elemente hat.Wie verschachtelte Ressourcen als JSON in Schienen rendern, wenn für jede verschachtelte Ressource auch Ressourcen verschachtelt sein könnten?
Es scheint also so, als müsste ich beim Rendern des JSON irgendwie Rekursion verwenden. Wenn also ein Element untergeordnete Elemente hat, sind darunter untergeordnete Elemente, und wenn eines dieser untergeordneten Elemente untergeordnete Elemente enthält, werden die untergeordneten Objekte darunter verschachtelt.
Ich bin mir nicht sicher, wie dies mit to_json und die Include-Option zu tun. Wenn ich gerade war das erste Kind Element der Liste zu machen würde ich dies nur tun:
respond_to do |format|
format.json { render json: @list.to_json(include: :item) }
end
Aber ich habe keine Ahnung, wie rekursiv die Artikel Kinder der machen: Einheit und ihre Kinder, und so weiter.
Eine andere Antwort schlägt vor, ein View-Objekt oder ein Juwel wie RABL für ein anderes Problem zu verwenden, das auch für to_json zu komplex erscheint. Ist das, was ich versuche, zu kompliziert für die to_json Methode? Was ist meine beste Option, um untergeordnete Ressourcen als json rekursiv darzustellen?
Danke für die Hilfe.
Danke Ich habe es herausgefunden. Ich dachte, ich hätte diese Frage gelöscht, aber deine Antwort ist richtig. Ich werde es lassen, falls jemand anders in diesem Bereich verwirrt ist. – srlrs20020