Ich habe ein Modell Orders
mit zwei Kindern Items
und fulfillments
.Schienen Einstellung Einstellung zwei Kindermodelle
Wenn ein fulfillment
erstellt wird, muss ich Items.fulfillment_complete
auf True setzen.
Ist dies in der Steuerung der beste Weg, dies zu tun?
current_order.fulfillment.save current_order.items(fulfillment_complete: true)
Oder gibt es einen besseren Weg, dies zu tun, dass man um sicherzustellen, dass folgende MVC Praktiken.
Modellnamen sind normalerweise singulär. Haben Sie einen Fullfillment für jeden Artikel in der Bestellung (ich nehme an ein "Artikel" ist etwas wie Produkt + Menge + Anpassungen, nicht ein Produkt selbst?) Oder ist es eine Fullfillment für die gesamte Bestellung? Wie auch immer, warum nicht einfach die Präsenz der Beziehung selbst nutzen? –
Sie versuchen grundsätzlich, "Caching" durchzuführen, indem Sie Daten (in diesem Fall 'bool') speichern, um die Existenz/den Zustand anderer Daten zu reflektieren. Für etwas so einfaches, schlage ich vor, dass Sie diese Informationen nicht zwischenspeichern und nur berechnen (Methode 'Item # erfüllt?' Würde das Ergebnis von 'self.fulfillments.exists zurückgeben?') - Das Problem mit dem Caching, ist nicht Um die Daten für das Caching zu erstellen, müssen Sie sicherstellen, dass Sie diesen Cache bei Bedarf löschen. – MrYoshiji
Könnten Sie bitte weitere Einzelheiten zu den Modellen 'Item' und' Fulfillment' angeben? Dann wird es viel einfacher zu verstehen, was Sie wollen und wie Sie die richtige Lösung implementieren. – zauzaj