2010-08-07 30 views
7

Actualmente el desarrollo de un carrito de la compra, las opciones para la persistencia de la compra, como los veo son:Manteniendo el carrito de la compra en Ruby on Rails

  1. tienda todo el objeto de la compra en una tabla de sesiones.
  2. Almacenar todo el objeto de carrito en una sesión de cookie.
  3. Tenga una tabla de carrito y guarde la identificación del carrito en una sesión de cookie.

¿Alguna vez me he perdido? ¿Cuál es el mejor para rodar con por favor?

Gracias

+1

Con # 3, asegúrese de proteger la cookie. De lo contrario, es posible cambiar la identificación del carro en la cookie para potencialmente "secuestrar" otros carros. El almacén de sesión predeterminado en Rails 3 es CookieStore, que rechaza las cookies manipuladas. – randomguy

Respuesta

10

# 3 es probablemente la mejor opción, ya que le da la mayor libertad/flexibilidad. Diga que algún día desea que los usuarios puedan guardar sus carritos de compras entre sesiones. O desea mantener historiales de carrito de compras para sus usuarios. O decide ejecutar algunos análisis en los datos del carrito de compras.

# 2 es una mala solución debido a los límites de tamaño de cookie en los navegadores. Te estás preparando para errores desagradables en los que se corrompen los grandes carritos de la compra, especialmente en los navegadores más antiguos.

5

Echa un vistazo a los episodios de Railscasts # 141- # 146 ... Me ayudaron mucho con las cosas relacionadas con el carrito de compras/pago (aunque los episodios no abordan directamente tu pregunta, verás un método directo de implementación un carrito de compras).