购买完成后,我需要一种方法将商店中的产品状态更改为已售出...
我使用以下代码:
if @order.purchase #I use active merchant's purchase method on compiled order
update_product_status #method explained below
end
在将产品复制为 line_item 之前,运行此代码:
@product = Product.find(params[:product_id]) #line_item belongs to product and cart
session[:pending_purchase] = @product.id #stores ID number into session
以便稍后我可以提取 ID,用于 update_product_status 代码:
def update_product_status #used to update boolean 'sold' status on product
product = session[:pending_purchase]
@sold_product = Product.find(product)
@sold_product.update(:sold = true) #not sure if this syntax is correct
end
如果有人购买两件商品,可能会出现问题。如果创建第二个 line_item 并将其添加到购物车中, :pending_purchase 中的 ID 会被覆盖吗?我将如何访问这两个变量并确保这两个项目现在都具有“sold = true”属性?