在Ruby on Rails中持久化购物车

8

目前正在开发一个购物车,我认为持久化购物车的选项有以下几种:

  1. 将整个购物车对象存储在会话表中。
  2. 将整个购物车对象存储在Cookie会话中。
  3. 拥有一个购物车表,并将购物车ID存储在Cookie会话中。

我有遗漏吗?哪个是最好的选择?

谢谢!


1
使用#3时,请确保保护cookie。否则,可能会更改cookie中的购物车ID,从而潜在地“劫持”其他购物车。Rails 3中的默认会话存储是CookieStore,它拒绝篡改的cookie。 - randomguy
2个回答

12

#3 可能是最佳选择,因为它给你最大的自由度和灵活性。比如,某天你想让用户能够在会话之间保存他们的购物车,或者你想要为你的用户保留购物车历史记录,或者你决定对购物车数据进行分析。

#2 是一个糟糕的解决方案,因为浏览器对cookie大小有限制。你会发现自己遇到了讨厌的错误,尤其是在旧版本浏览器中,如果购物车变得很大就会损坏。


5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接