Ich versuche, eine Self Join-Beziehung für ein Modell namens: Subsystem. In diesem Fall repräsentiert ein Subsystem ein Java-Paket, eine Klasse oder eine Methode. Ich habe die Schienen Dokumentation zu lesen, wo ich sah ich es wie folgt verwenden:Wie erstelle ich ein Self-Join-Objekt, wenn es auch zu einem anderen Modell gehört?
class Subsystem < ActiveRecord::Base
has_many :child_subsystems, class_name: "Subsystem",
foreign_key: "parent_id"
belongs_to :parent, class_name: "Subsystem"
end
ich ein paar Beispiele auch sah, wo in den meisten Fällen die „Teil erstellen“ wird nicht beschrieben. Mein Problem ist, dass ich nach dem besten Weg suche, die Subsysteme zu erstellen, denn: Das Subsystem-Modell gehört auch zu einem Projekt. Im Moment erstelle ich Subsysteme wie:
project.subsystems.create(params)
Ich hoffe, dieses Bild macht es sich besser zu verstehen. Ein Projekt kann 0 bis mehrere Subsysteme haben, und jedes Subsystem kann auch 0 bis mehrere Subsysteme haben.
Ich habe gesehen, Beispiele eine Selbst machen verbinden, wo die Menschen das Element Beziehung mit Build erstellt, aber ich bin nicht sicher, wie mit meinem vorhandenen erstellen zu kombinieren, dass: project.subsystems.create.
Kann mir jemand helfen? Danke im Voraus!
Wenn Sie eine 'has_many'-Beziehung haben, wird Rails Ihnen automatisch eine Methode' build _ # {association} 'oder in Ihrem Fall' build_child_subsystems' geben – Kkulikovskis
@Kkulikovskis Danke für Ihre Antwort! Ich werde einen Blick auf die Build-Assoziationsmethode werfen, um herauszufinden, wie ich sie mit meiner derzeitigen Art der Erstellung der Subsysteme kombinieren und die parent_id setzen kann! – Maikel