Sto utilizzando il modello di oggetto modulo per gestire la normalizzazione e la convalida dei dati nella mia app.
Funziona bene per casi semplici, ma alcuni dei miei oggetti modulo sono compositi (o roll-up) di più altri oggetti modulo, al fine di costruire le associazioni appropriate e convalidarli è diventato un incubo.
Ad esempio, ho un prodotto che può avere molte varianti. La variante è solo una sottoclasse di Prodotto.
Un prodotto o una variante possono avere molte caratteristiche.
Ho un oggetto FeatureForm che può costruire, validare e salvare una funzionalità. Funziona bene.
Ho anche un oggetto VariantForm a cui sono associati molti oggetti FeatureForm, quindi crea, convalida e salva tutto ricorsivamente attraverso ogni associazione nidificata. È qui che emergono i problemi.
La funzione richiede un product_id (che è un ID prodotto o Variant). Quindi, quando i miei oggetti modulo convalidano ricorsivamente tutte le loro associazioni, la Variant non è persistente e quindi non ha un id. Ciò rende la Caratteristica non valida, quindi rende l'intero oggetto modulo composito non valido.
Qualcuno può condividere esperienze e idee che potrebbero aiutarmi a capire come progettare meglio una soluzione per questo?