Ruby on Rails: Richtiges Erstellen einer Modellinstanz, die eine Beziehung zu mehreren Modellen hat

8

Nehmen wir an, ich habe ein eigenständiges Benutzermodell und ein eigenes Servicemodell.

Ich habe auch ein Bestellmodell, das die Bestellungen enthält, die von einem Benutzer für einen Service erstellt wurden. Ich frage mich, wie ich einen Bestelleintrag in Schienen richtig erstellen konnte.

So erstelle ich einen Auftragseintrag, wenn er sich auf nur ein anderes Modell bezieht, sagen Benutzer.

%Vor%

Wie mache ich das, wenn sich die Bestellung auf mehrere Modelle (Benutzer und Service) bezieht?

Nehmen Sie an, dass das Auftragsmodell über Attribute user_id und service_id verfügt und alle Modellobjekte ordnungsgemäß mit den Beziehungen objects_to und has_many gekennzeichnet sind.

    
Srini K 22.04.2011, 20:43
quelle

3 Antworten

2

So würde ich dieses Problem lösen, vorzugsweise den ersten Weg.

%Vor%     
Srini K 24.04.2011, 04:15
quelle
6
%Vor%

Wo @service ist ein von Ihnen abgerufener Service

    
fl00r 22.04.2011 21:06
quelle
0

Ich glaube, es gibt keine "magische" Methode für diesen Fall. Die Logik besteht jedoch darin, dass Sie eine Bestellung erstellen, wenn sowohl der Benutzer als auch der Dienst bereits vorhanden sind. Daher enthält der Dienst bereits das Attribut user_id, und Sie sollten wahrscheinlich build on service.orders aufrufen:

%Vor%     
Vlad Khomich 22.04.2011 21:15
quelle

Tags und Links