gpt4 book ai didi

ruby-on-rails - 如何修复 # 的未定义方法 `product'

转载 作者:太空宇宙 更新时间:2023-11-03 18:03:27 24 4
gpt4 key购买 nike

我正在尝试产品数量 - 1 但我收到此错误

line_item.rb

belongs_to :order
belongs_to :product

支付.rb

has_many :orders

#LineItem::ActiveRecord_Relation:0x0000000017b22f70> 的未定义方法“产品”

@line_item = LineItem.where(:order_id => params[:zc_orderid])
@line_item.product.quantity = @line_item.product.quantity - 1
if @line_item.product.quantity == 0
@line_item.product.sold = true
end
@line_item.product.save

最佳答案

如果您使用where,您得到的不是单个LineItem 对象,而是一个LineItem::ActiveRecord_Relation 对象。如果该条件足以获取一条记录,则使用 find_by。如果不是,您需要更多地考虑逻辑,因为您会得到不止一个对象。

@line_item = LineItem.find_by(:order_id => params[:zc_orderid])

如果你想减少所有这些订单项的数量,我会做类似的事情

LineItem.transaction do
LineItem.where(:order_id => params[:zc_orderid]).each do |line_item|
line_item.product.quantity = line_item.product.quantity - 1
if line_item.product.quantity == 0
line_item.product.sold = true
end
line_item.product.save
end
end

关于ruby-on-rails - 如何修复 #<LineItem::ActiveRecord_Relation:0x0000000017b22f70> 的未定义方法 `product',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55828652/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com