Salve a tutti,
Stò implementando un carrello spesa in un’applicazione rails.
Tutto procede bene fin quando non accade che l’utente abbandoni la
sessione
senza svuotare manualmente il carrello.
In alcuni controller ho un filtro così impostato:
before_filter :get_cart, :except => :empty_cart
Dove get_cart è definito come:
def get_cart
if session[:cart]
@cart = Cart.find(session[:cart])
else
if logged_in?
@cart = Cart.new
@cart.user = current_user
@cart.save!
session[:cart] = @cart.id
else
@cart = nil
end
end
end
Il metodo get_cart fissa il record nel database che rimane lì finchè
l’utente non procede al checkout o allo svuotamento del carrello.
Al momento non mi viene in mente nulla per far sì che, alla chiusura del
browser ad esempio, venga eliminato il carrello dell’utente posto che
questo sia vuoto.
Voi come fareste? Ci vorrebbe qualcosa che facesse da garbage collector
per
i carrelli rimasti orfani…
Grazie in anticipo.