如何从订单中删除 LineItem 实例 (Spree)
How to remove LineItem instance from an order (Spree)
我正在使用 Spree,但我并不完全熟悉内置方法。
我试图做到这一点,以便当 params[:quantity] == 0 时,line_item 实例被删除并从订单中移除。我试过调用销毁!在这个实例上,但这并没有奏效,还有一些其他的内置功能。
def update
@order = current_order
@line_item = Spree::LineItem.find(params[:id])
@line_item.quantity = params[:quantity]
@line_item.save
# can't figure out a way to remove line_item when quantity is set to zero
@order.update!
respond_with(@order) do |format|
format.json{render json: @order}
end
end
感谢任何帮助,提前致谢!
你几乎做对了。它需要在您的代码中更正如下
def update
@order = current_order
@line_item = Spree::LineItem.find(params[:id])
@line_item.quantity -= params[:quantity]
if @line_item.quantity == 0
@line_item.destroy
else
@line_item.save!
end
respond_with(@order) do |format|
format.json{render json: @order}
end
end
我正在使用 Spree,但我并不完全熟悉内置方法。 我试图做到这一点,以便当 params[:quantity] == 0 时,line_item 实例被删除并从订单中移除。我试过调用销毁!在这个实例上,但这并没有奏效,还有一些其他的内置功能。
def update
@order = current_order
@line_item = Spree::LineItem.find(params[:id])
@line_item.quantity = params[:quantity]
@line_item.save
# can't figure out a way to remove line_item when quantity is set to zero
@order.update!
respond_with(@order) do |format|
format.json{render json: @order}
end
end
感谢任何帮助,提前致谢!
你几乎做对了。它需要在您的代码中更正如下
def update
@order = current_order
@line_item = Spree::LineItem.find(params[:id])
@line_item.quantity -= params[:quantity]
if @line_item.quantity == 0
@line_item.destroy
else
@line_item.save!
end
respond_with(@order) do |format|
format.json{render json: @order}
end
end