所以我在rails应用程序中构建了一个产品系统和一个购物车。我的目标是将购物车中保存的产品与用户模型相关联。
我很难找到一个解决方案,我怎样才能将购物车中的商品ID从每个current_user保存到用户模型的列中?
因此,在我的购物车视图页面中,有一个购物车中所有已添加产品的列表,我想添加一个保存按钮,该按钮将按其ID保存这些产品。 例如,如果current_user在购物车中使用ID 1,2,3并点击购物车中的“保存”按钮广告三个产品,我希望能够将这三个ID按整数保存到“addproducts”列中。当前用户。 这是我的cart_controller的一部分:
def additems
id = params[:id]
if session[:cart] then
cart = session[:cart]
else
session[:cart] = {}
cart = session[:cart]
end
if cart[id] then
cart[id] = cart[id] + 1
else
cart[id] = 1
end
redirect_to :action => :index
end
和我的产品控制器的一部分(通过脚手架生成):
class ItemsController < ApplicationController
before_action :set_item, only: [:show, :edit, :update, :destroy]
respond_to :html, :json, :js
def index
@products = Product.where(availability: true)
end
def show
end
def new
@product = Product.new
end
def edit
end
def create
@product = Item.new(item_params)
@product.save
respond_with(@product)
end
这可能实现吗?
(如果有任何帮助,我正在使用标准的Devise设置)
答案 0 :(得分:0)
如何将多个项目保存到单个列“addedproducts”?我认为最好的解决方案是在购物车中添加外键。使购物车属于用户。并且用户有很多推车。就像你可能创建了Cart模型和Item模型一样。通过两者之间的正确关系......(如果这样做,您将不得不通过引用User将新迁移添加到购物车模型。)