lucrul cu o înregistrare de baze de date fără a le salva în șine

Dezvolt o aplicație folosind rubin pe Rails care va fi folosită pentru a instrui cursanții în simulări de înaltă fidelitate în care trebuie să înregistreze note într-un sistem electronic de păstrare a înregistrărilor pe web.

Ideea este de a permite utilizatorilor să recupereze o înregistrare simulată din baza de date, să interacționeze cu ea prin adăugarea de înregistrări copil care reprezintă note de procedură, mesaje către alte persoane și altele asemenea, iar la sfârșitul sesiunii să afișeze modificările și completările care au fost făcute. După toate acestea, înregistrarea "șablon" va trebui să poată fi resetată la starea inițială, revenind la starea în care a fost înainte ca utilizatorul să lucreze cu el.

Utilizatorii multipli vor folosi aceeași înregistrare "șablon" în diferite camere de simulare, astfel încât modificările efectuate de un singur utilizator nu ar trebui să afecteze datele disponibile altor utilizatori.

Am dezvoltat deja o mare parte din aplicație folosind schele generate, pe care le-am modificat pentru a produce funcționalitatea de bază a sistemului de înregistrare.

Acum trebuie să dau seama de funcționalitatea "modului de simulare", care permite unui utilizator să "distrugă" o copie a unei înregistrări care va fi aruncată după ce se fac modificări la sfârșitul unei sesiuni.

A dezvoltat cineva o aplicație pentru șine care are cerințe similare celor menționate mai sus?

Mă gândesc că va trebui să stochez copii ale pacientului și ale obiectelor copilului în variabilele de sesiune. Există exemple disponibile pentru a arăta cum să stocați copii ale obiectelor în variabilele de sesiune și să le modificați și să le adăugați folosind formulare? Orice ajutor și sfaturi ar fi foarte apreciate.

0

2 răspunsuri

Cred că ceea ce căutați este managementul versiunii. Există o serie de pietre prețioase pentru a face acest lucru, vă sugerez să vă uitați la:

http://railscasts.com/episodes/255-undo-with-paper-trail

... și să vedem dacă tipul de funcționalitate poate fi abordat pe hârtie. Dacă nu, verificați:

https://www.ruby-toolbox.com/categories/Active_Record_Versioning

0
adăugat

https://github.com/collectiveidea/audited

gem foarte cool, pur și simplu stocați statul de audit în sesiune la care apoi vă întoarceți.

0
adăugat