Frage

habe ich ein paar Fragen auf SO über Rails Verbände finden, die ein wenig wie meine Frage, aber für das Leben von mir kann ich scheinen nicht zu verstehen, wie belongs_to mehrere Modelle verwenden.

Hier ist die Tabellenstruktur Ich beabsichtige zu haben:

User
 id

Post
 id
 user_id #foreign key; a post belongs to a User aka "Who created this post"

Comment
 id
 user_id #foreign key; a comment belongs to a User aka "Who made this comment"
 post_id #foreign key; a comment belongs to a Post aka "What post this comment is for"

und Verbände :

User
 has_many :posts
 has_many :comments

Post
 belongs_to :user
 has_many :comments

Comment
 belongs_to :user
 belongs_to :post

Ist das der richtige Ansatz?

War es hilfreich?

Lösung

Ja, das ist der richtige Ansatz.

Andere Tipps

Während nicht immer die „beste“ -Ansatz, Rails bietet, was ein Polymorphe belongs_to Verein genannt . Es verhindert, dass Sie einen Fremdschlüssel in der Datenbank definiert, weil die xxx_id Spalte eine ID in eine von vielen möglichen Tabellen verweist, während eine andere Spalte den Namen der Tabelle Modell bezeichnet, aber es macht die Beziehung deutlicher in Rails. Außerdem schränkt es das Modell nur, gehören in eine der anderen Modelle, wie dem zu gehören, im Gegensatz oder mehr, wie es mit der Einrichtung mehrerer Fremdschlüssel ohne einige zusätzliche db Magie passieren würde.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top