【发布时间】:2010-11-27 00:56:01
【问题描述】:
我正在尝试构建一个简单的购物车,我阅读了有关控制它们的信息,发现有 3 种方法可以控制它们。 一个是cookies,另一个是基于会话的,最后一个是数据库模型。 我想知道哪个是更好的选择? 有人说数据库方法更好,但也更难。 我也在找数据库模型教程...
【问题讨论】:
标签: ruby-on-rails database session cookies shopping-cart
我正在尝试构建一个简单的购物车,我阅读了有关控制它们的信息,发现有 3 种方法可以控制它们。 一个是cookies,另一个是基于会话的,最后一个是数据库模型。 我想知道哪个是更好的选择? 有人说数据库方法更好,但也更难。 我也在找数据库模型教程...
【问题讨论】:
标签: ruby-on-rails database session cookies shopping-cart
您真正谈论的是会话。您可能会在用户结账时将一些购物车数据存储在会话中,因此您可能会对此感到困惑。
您的问题的答案取决于您在会话中存储的数据类型和数量。 Cookie 有大小限制,您不应在其中存储未加密的敏感用户数据。有人会说你甚至不应该把信用卡号码之类的东西加密。数据库支持的会话的缺点是您必须经常清除它们。这很容易通过 cron 作业运行 rake 任务来完成,但这仍然是您必须考虑的事情。文件支持的会话不经常使用,还有更多只是为了让您快速启动并运行某些东西。我不会在生产环境中运行文件支持的会话。
Authlogic 是一个可以拉入 Rails 项目的 gem。它提供了一个可以继承的 UserSession 模型。它有很多功能并且是完全可配置的。
【讨论】:
我构建的购物车将信息存储在数据库中,并且仅将 cart_id 存储在会话中。然后,您只需要每隔几天从 db 清理未完成的购物车的工作。
【讨论】: