Wie Felder in einer has_many-Join-Tabelle gefüllt werden

8

Ich habe eine Frage bezüglich der aktiven Datensatzzuordnung, die sich auf diesen Teil der Rails-Dokumentation bezieht:

Ссылка

wenn wir drei Modelle haben:

%Vor%

Die Dokumentation besagt, dass die Sammlung von Join-Modellen über die API auf diese Weise verwaltet werden kann:

%Vor%

Aber was ist, wenn das Terminmodell, wie im verknüpften Beispiel, ein Feld namens termination_date hat und ich einen neuen Termin für den Arzt und den Patienten zu einem bestimmten Datum erstellen möchte? Der folgende Code wird einen Datensatz in der Termintabelle erstellen, aber wie wird das Termindatum auch im dritten Schritt ausgefüllt?

%Vor%

existiert so etwas?

%Vor%     
Gnagno 23.08.2011, 17:10
quelle

2 Antworten

4

alte Frage, aber es sollte beantwortet werden - obwohl Sie direkt physician.patients mit der Methode << zuweisen können, erstellt es einen Termin ohne Werte, die abhängig von den Geschäftsregeln gültig sein können oder nicht. Also wäre der üblichere Weg, um die Assoziation zu erstellen, der Termin auf einem von ihnen zu bauen

%Vor%

Sie könnten natürlich die Zeilen 2 und 3 kombinieren, wenn Sie so geneigt sind.

die Zeile in den Dokumenten, auf die Sie verweisen

%Vor%

Ich denke, der enge Anwendungsfall dafür könnte sein, dass, wenn Demento 7 Patienten hatte, aber Frau Holloway aufgrund eines unglücklichen Vorfalls mit einem Todesstrahlexperiment verliert, dann könnten Sie dies mit einer aktualisierten Liste der 6 vorhandenen Patienten tun ihre Ernennungen würden erhalten bleiben, und Mrs. Holloways frühere Verabredungen würden automatisch gelöscht werden (um irgendwelche Aufzeichnungen von hier aus haftungsrechtlichen Gründen zu löschen - nur Demento wäre so hinterhältig).

    
sbeam 14.06.2012, 18:37
quelle
2

Sie möchten verschachtelte Routen in Erwägung ziehen, z. B.

%Vor%

Sie können Dinge wie form_for(@physician, @patient)

verwenden

und URLs sind wie physician/1/patient/23

zur Aktualisierung eines Patienten im Rahmen eines Arztes.

    
Michael Durrant 24.08.2011 23:22
quelle