salve è da poco che programmo in ruby on rails vi spiego il mio problema ho un sito con un carrello in cui metto gli oggetti in vendita il carrello è una classe a cui è associato un vettore di items che contengono le varie quantità di oggetti ordinati e il loro nome io ho poi una classe prodotti che è un activerecord con un campo disponibilità quando aggiungo un prodotto al carrello la disponibilità di prodotti viene decrementata ora se svuoto il carrello a mano posso andare a reincrementare la disponibilità dei prodotti, ma se chiudo il browser con il carrello che contiene degli oggetti questo viene svuotato ma la disponibilità degli oggetti non viene reincrementata..c'è un modo per 'intercettare' la chiusura del browser? oppure una specie di distruttore della classe carrello in cui possa scrivere il codice per reincrementare la disponibilità ? grazie a tutti
on 2010-02-28 01:05
on 2010-02-28 01:34
Alessandro Mattioli wrote: > salve > è da poco che programmo in ruby on rails > vi spiego il mio problema > ho un sito con un carrello in cui metto gli oggetti in vendita > il carrello è una classe a cui è associato un vettore di items che > contengono le varie quantità di oggetti ordinati e il loro nome > io ho poi una classe prodotti che è un activerecord con un campo > disponibilità > > quando aggiungo un prodotto al carrello la disponibilità di prodotti > viene decrementata > ora se svuoto il carrello a mano posso andare a reincrementare la > disponibilità dei prodotti, > ma se chiudo il browser con il carrello che contiene degli oggetti > questo viene svuotato ma la disponibilità degli oggetti non viene > reincrementata..c'è un modo per 'intercettare' la chiusura del browser? > oppure una specie di distruttore della classe carrello in cui possa > scrivere il codice per reincrementare la disponibilità ? > grazie a tutti Quello che devi controllare e' la session , che va in timeout una volta che il browser e' stato chiuso e non ci sono piu' attivita' da parte dell' utente puoi salvarti in sessione l'id del carrello , quando la sessione muore sai quale carrello devi svuotare
on 2010-02-28 11:17
Simone R. wrote: > Quello che devi controllare e' la session , che va in timeout > una volta che il browser e' stato chiuso e non ci sono piu' > attivita' da parte dell' utente > > puoi salvarti in sessione l'id del carrello , quando la sessione muore > sai quale carrello devi svuotare Il principio è quello, ma bada bene che questo non è un'operazione che puoi fare da controller, perché il browser chiuso (o la connessione internet caduta!) non manderà richieste al server :-) Hai bisogno di un programma che giri ogni tanto e che verifichi la data delle ultime richieste fatte dagli utenti. Devi essertele però segnate nel db, magari con un before_filter in ApplicationController. Tra l'altro per un'operazione del genere è possibile che uno script sql sia sufficiente, senza dover far partire un programma ruby con script/runner o cose del genere. Paolo
on 2010-02-28 16:00
pascolando in rete ho trovato qualcosa che forse puo' essere utile http://www.rubyinside.com/sessiontimeout-a-rails-plugin-to-handle-short-term-session-timeouts-255.html
on 2010-03-01 00:09
mmh.. mi sembra di aver capito quello che mi dite.. ma se io in application.rb aggiungo la riga sesson_times_out_in 5.minutes fa quello che ho bisogno io? il problema però rimane... come faccio a aggiornare il mio database una volta che l'app è bella che terminata?
on 2010-03-01 00:11
Alessandro Mattioli wrote: > mmh.. > > mi sembra di aver capito quello che mi dite.. > ma se io in application.rb aggiungo la riga > > sesson_times_out_in 5.minutes > > fa quello che ho bisogno io? > > il problema però rimane... > come faccio a aggiornare il mio database una volta che l'app è bella che > terminata? mi auto quoto..c'è un metodo o un evento di application.rb o simile che viene chiamato alla terminazione dell'applicazione? e uno all'inizio?
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.