我想对一个方法使用after_update回调方法,该方法将更新购物车应用程序中产品的库存。控制器中的代码为: ProductsController.rb:
def update
order = current_order
@order_item = order.order_items.find(params[:id])
@order_item.product.save
end
在ProudctModel中:
after_update :remove_stock
def remove_stock
puts "this is #{order_items}"
order_items.collect do |oi|
puts "this is product id: #{oi.product.id}"
end
end
但是,在运行上述日志时,日志如下:
order items product: 1
order items product: 1
order items product: 1
order items product: 1
order items product: 1
order items product: 1
order items product: 1
order items product: 1
order items product: 1
order items product: 1
order items product: 1
order items product: 1
为什么当order_item中只有一种产品时,为什么显示这么多product_id?
PS:我的关联如下:
产品has_many order_items
order_items属于订单
订单has_many order_items
我想念什么? 请帮忙。 谢谢。
答案 0 :(得分:0)
after_update :remove_stock
def remove_stock
puts "this is product id: #{self.id}"
end
由于您属于产品模型本身,因此可以访问产品对象