2016-12-22 2 views
0

Es ist meine erste Frage, aber ich muss noch eine Antwort finden, also hoffe ich, dass es keine Regel verletzt.Zugriff auf Beziehungstabellen Daten in Schienen (mit has_many: through)

Ich habe ein Problem mit einem scheinbar einfachen Schienenproblem. Ich habe die Zeit genommen, über Beziehungsmodelle in Schienen (has_many: durch) zu lesen und kam auf dieses Beispiel:

Exemplary model relations

In meinem Modell, ich habe Anthology (phyisicians), Poem (Patienten) und eine anthology_poem Beziehungsmodell (Termine). In der may-Beziehungstabelle habe ich eine Spalte, order, die die Position eines bestimmten Gedichts in einer bestimmten Anthologie angibt.

Die Frage ist - Wie adressiere ich die Spalte "Bestellung"? Wie aktualisiere ich es/lese es? Ich stelle mir sowas vor:

book.poems.first.order 

was offensichtlich nicht funktioniert.

Ich würde gerne in der Lage sein, es ohne zu viel Hacking zu tun, weil ich mich darin verliebt habe, wie einfach Rails den Rest des Krams handhabt.

Vielen Dank im Voraus!

+0

Können Sie Ihr Modell-Code für diese Posten, wie sie sind? –

+0

Sie sollten "first" entfernen, damit es 'book.poems.order' lautet. Wenn Sie 'first' haben, gibt es nur einen zurück – Dawcars

+0

@Dawcars ​​Er versucht, eine Spalte namens' order' zu erreichen, um die Artikel nicht wirklich zu bestellen. – Iceman

Antwort

-1

Wenn Sie Ihr Beziehungsmodell für den Zugriff auf Attribut, das Sie es auf diesem Modell nennen sollte:

Appointment.where(physician: physician).pluck(:order) 
Verwandte Themen