【发布时间】:2011-07-12 19:17:52
【问题描述】:
我正在关注敏捷 Web 开发教程,但在当前的实现中遇到了一个烦人的问题。如果会话更改或过期,购物车仍然存在于数据库中。 Rails 应该如何处理这些无用的购物车对象?
谢谢
【问题讨论】:
-
听起来更像是一个哲学问题
标签: ruby-on-rails shopping-cart
我正在关注敏捷 Web 开发教程,但在当前的实现中遇到了一个烦人的问题。如果会话更改或过期,购物车仍然存在于数据库中。 Rails 应该如何处理这些无用的购物车对象?
谢谢
【问题讨论】:
标签: ruby-on-rails shopping-cart
如您所见,每次有人进入您的应用程序时,它都会创建一个新的购物车 对象(显然也是一个新的购物车行)....所以最后你会有很多无用的购物车行(例如对于那些不结帐的用户)。一种选择是改变购物车的创建方式,另一种就像Billthor所说的:做一个后台进程(或rake任务)来销毁所有无用的购物车
【讨论】:
通常,后台进程会不时删除旧的购物车。您需要防止在有人购物时重新创建会话。如果您使用它来跟踪购物车,这样做将被视为错误。
如果您也有用户 ID,则可以将具有用户 ID 的购物车检索到其他会话中。在这种情况下,后台进程可能会比匿名购物车更长时间地保留它们。找回丢失的购物车需要更多的代码,但可能是一个不错的功能。
【讨论】: