2016-04-15 5 views
1

Ich baue eine E-Commerce-App auf die harte Tour (kein Spree, Shoppe, etc), damit ich Schienen lernen kann. Derzeit habe ich ein Restaurant Modell, Mahlzeiten Modell, und Bestellungen Modell. Benutzer (die Geräte verwenden) können Mahlzeiten öffnen, ein Bestellformular mit einem Attribut ausfüllen: Quantität und die Bestellung an ihren Einkaufswagen senden (behalten: restaurant_id, meal_id,: qty). Mahlzeiten in Restaurants haben jedoch normalerweise Größen und Ergänzungen (mit Käse, mit Ketchup usw.). Im Idealfall würde ich so etwas wie spree_flexi_variants bauen, aber ich kann einfach nicht sehen, wie das geht ... Sollte ich "Eigenschaften" und "Ergänzungen" verschachteln (2 Ebenen tief wie Mahlzeiten ist derzeit verschachtelt in Restaurant) in den Mahlzeiten, oder fügen Sie irgendwie eine Eigenschaft zum Mahlzeitenmodell hinzu? Vielen Dank für Anregungen!Schienen, Produktvarianten

Antwort

1

Ich gehe davon aus, dass Ihr Essen Objekt die Ergänzungen als Kind Artikel hat, in diesem Fall die Bestellung wird auch brauchen Kind Artikel, in diesem Fall würden sie eine Verbindung zwischen Ergänzungen und Bestellung sein.

Sie müssen es nicht so machen, es ist nur ein möglicher Ansatz. Sie könnten die ausgewählten Ergänzungen stattdessen als serialisierten Hash in der Bestellzeile speichern.

Wenn dies ein Projekt zum Lernen ist, würde ich beides versuchen und sehen, was sich am nettesten anfühlt - es ist alles nützliche Übung!

+0

Ich werde den Ansatz mit einem Attribut versuchen: Ergänzungen im Essensmodell, das alle aktuellen Optionen + Preis für jede Option speichert. Vielen Dank :) –

Verwandte Themen