Active - Selbst Referenzierung Verbände
-
18-09-2019 - |
Frage
Ich bin ein total Rubin / Rails / AR Noob. Ich habe eine sehr einfache Art von Datenbank-Schema, das ich nicht den besten Weg, um herauszufinden, zu repräsentieren in dem Rails-Way scheinen kann.
Table Post
String title, author
Text content
Timestamp posted
Post parent
Die Idee dabei ist, dass Top-Level-Beiträge Elternteil haben, der NULL ist. Jede Antwort wird einen Elternteil hat, so dass sie natürlichen Fäden bilden.
Der Titel, Autor, Inhalt und geschrieben Ich habe keine Probleme mit, aber die Eltern Bit mich stolpern. Jede Hilfe, Hinweise oder Anregungen wären toll!
Lösung
Schauen Sie sich die act_as_tree
Plugin, es eine Reihe von Methoden bietet, die die Beziehungen verwalten für Sie. Railscasts hat einen Screencasts auf Baumbasierte Navigation das ist sehenswert.
Andere Tipps
Ihr Post
Modell sollte so nahe an der Spitze deklarieren:
belongs_to :parent, :class_name => 'Post'
Dann eine Migration verwenden, aktualisieren Sie Ihre posts
Tabelle so, dass jede Reihe kann seine Eltern verfolgen:
add_column :posts, :parent_id, :integer
Wenn Sie nun ein Post
Objekt namens @post
haben, können Sie seine Eltern mit @post.parent
verweisen.