2010-08-07 4 views
7

Attualmente lo sviluppo di un carrello della spesa, le opzioni per persistere il carro, come li vedo sono:Il persistere di un carrello della spesa in Ruby on Rails

  1. Conservare l'intero oggetto della spesa in una tabella sessioni.
  2. Archivia l'intero oggetto del carrello in una sessione cookie.
  3. Avere una tabella di carrello e memorizzare l'ID del carrello in una sessione di cookie.

Ho perso qualcuno? qual è il migliore da giocare con per favore?

Grazie

+1

Con 3 #, assicurarsi di proteggere il cookie. Altrimenti, è possibile modificare l'id del carrello nel cookie per "dirottare" potenzialmente altri carrelli. L'archivio di sessione predefinito in Rails 3 è CookieStore, che rifiuta i cookie manomessi. – randomguy

risposta

10

# 3 è probabilmente la scelta migliore, perché che ti dà la massima libertà/flessibilità. Dite che un giorno vorrete che gli utenti siano in grado di salvare i loro carrelli della spesa tra una sessione e l'altra. O vuoi mantenere le storie del carrello degli acquisti per i tuoi utenti. Oppure decidi di eseguire alcune analisi sui dati del carrello.

# 2 è una soluzione non valida a causa dei limiti di dimensione dei cookie sui browser. Ti stai preparando per cattivi bug in cui i grandi carrelli della spesa vengono danneggiati, in particolare nei browser più vecchi.

5

Scopri i migliori episodi Railscasts # 141- # 146 ... mi ha aiutato molto con il carrello/roba shopping checkout legati (anche se gli episodi non affrontano direttamente alla tua domanda, si arriva a vedere un metodo semplice di attuazione un carrello).