【发布时间】:2021-02-01 22:03:59
【问题描述】:
我希望有人能指出我正确的方向,因为我已经在这个问题上绞尽脑汁了几天????
一个网站列出了多个商店,每个商店都有一个展示页面,用户可以从中选择产品并将其添加到(会话)购物车。每个商店都有相应的购物车。用户为每个购物车执行单独的结帐过程。在 carts#index 页面上,用户可以看到活动购物车的概览。
我发现下面的 sn-p 完全可以工作。然而,当尝试升级 set_cart 方法以包含多个购物车时,我自己的逻辑和想法失败了。
module CurrentCart
private
def set_cart
@cart = Cart.find(session[:cart_id])
rescue ActiveRecord::RecordNotFound
@cart = Cart.create
session[:cart_id] = @cart.id
end
end
一种有效但扩展性不强的方法是为整个网站创建 1 个会话购物车,然后发送一个商店实例进行过滤(即@cart.items_for_shop(@shop)。问题在于购物车实例和商店实例都需要在应用程序的任何地方都可用。为每个商店设置单独的 cart_id 会更有意义。
您将如何在会话中存储多个购物车?
提前多谢了????
【问题讨论】:
标签: ruby-on-rails ruby activerecord ruby-on-rails-6