Non riesco a capire il flusso di lavoro che verrebbe utilizzato nel seguente scenario:Cosa si può fare con i modelli di dati di metallo quando sono nello stato di errore?
Un utente crea un modello, chiamiamolo Prodotto. Presentiamo loro un modulo da compilare. Gli errori di salvataggio per qualche motivo diverso dalle convalide (timeout, accesso negato ecc.) In Ember, questo mette il modello in uno stato di errore. Dal punto di vista dell'interfaccia utente, tutto ciò che voglio fare è mettere un messaggio sullo schermo (facile) e consentire all'utente di riprovare (apparentemente non così facile).
L'ho visto scrivere molte volte per non riutilizzare una transazione. Capisco la logica di ciò. Nel caso di un nuovo prodotto, creo semplicemente un altro nuovo prodotto, unisco i dati del prodotto originale (attributi, relazioni) e sostituisco il contenuto del mio controller con il nuovo prodotto. Questo non è stato difficile e sembra funzionare bene, sebbene ci possa essere (si spera) in un modo migliore.
Tuttavia, quando si modifica un prodotto, si è verificato un problema grave e la soluzione di cui sopra non funziona. Il modello di prodotto è ora nello stato di errore e non riesco a trovare alcun modo per ottenere una copia di questo prodotto che non si trovi nello stesso stato.
Quello che non riesco a capire è cosa posso fare con questo modello una volta che ha raggiunto lo stato di errore. Ho provato il seguente:
Rollback: Questo non funziona. Non è possibile eseguire il rollback di una transazione nello stato di errore.
Ricarica: Come sopra. Non è consentito ricaricare un record nello stato di errore.
Prendere una nuova copia del record: Così provo App.Product.find (id) con lo stesso id del record esistente. Mi dà solo una copia del record esistente, nello stato di errore.
Spero di perdere qualcosa di abbastanza semplice qui. È possibile eseguire correttamente il roll out di un record da uno stato di errore (o da uno stato non valido)?
Se esiste un modo semplice per modificare lo stato di questi modelli, dovremmo ancora creare una nuova transazione per ulteriori tentativi di commit?
Dai un'occhiata a questo thread e questo modello. http://stackoverflow.com/a/16471974/1330615 – danielgatis
Dai un'occhiata a questo thread e questo modello. http://stackoverflow.com/a/16471974/1330615 – danielgatis
@danielgatis Ho dato un'occhiata al vostro succo, che è legata al dal link che hai postato ... vedo il motivo per cui il vostro modello funziona per un nuovo record mentre semplicemente distruggi il fallito e ne crei uno nuovo quando non lo convalida. Non ti fa perdere i dati inseriti dall'utente? Inoltre, questo non funzionerà per modificare i record esistenti. Infine c'era bisogno di postare il tuo commento tre volte su questa domanda? –