在一个会话期间保存购物车对象

时间:2011-11-02 12:38:16

标签: ruby-on-rails session shopping-cart

我正在建立一个在线商店,以提高铁路技能。我想让未经授权的用户将商品添加到购物车。为此,我应该以某种方式存储购物车对象和在会话或其他地方添加到其中的项目。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

您只需向用户会话添加一个哈希(如果他还没有登录,也会创建)。

session[:cart] = Array.new if !session[:cart]

然后当他向购物车添加一个Object时,您可以像这样在会话中向数组中添加一个哈希值。

session[:cart] << hash.new(:product_id => <id>, :quantity => 1337)

您可以创建模型Cart并将cart_id写入此会话。

session[:cart_id] = <cart_id>

但是使用这种方法的缺点(通常是退出更好的方式),你不能破坏条目直到会话被破坏,所以你可能会遇到所有旧推车的麻烦。