目标:更新关联的模型(列表)
如果listing.orders.count超过某个阈值,我已经成功地(在SO的帮助下)将listing.listing_status
更新为某个枚举(3)。如果阈值低于一定数量,我现在需要将列表状态更新回“实时”(1)。
型号:
listing.rb
has_many :orders
order.rb
belongs_to :listings
has_one :order_1
has_one :order_2
order_1.rb
belongs_to :order
order_2.rb
belongs_to :order
order_1和2本质上是订单的变量,并存储需要它们自己的数据库的不同类型的文件。创建这些文件后,它将更新关联的订单的order_status以完成@order.update_column(order_status: n)
。
问题:我将能够在订单模型中执行此操作,就像在订单高于特定阈值时进行更新一样,但是我的问题是...在我的order_1控制器中更新方法,我使用update_column
更新了Order模型,该模型跳过了回调。所以现在我想我需要通过我的order_1和order_2控制器(或模型)来做到这一点?
在order_1控制器中,我尝试过:
private
def update_listing
@order_seller = Order.where(order_status: [1]).where(listing_id: Listing.ids)
# @listing = Order.all.where(params[:listing_id])
# if @order_seller.count < 999
# @listing.update_column(:listing_status, 1)
# end
if @order_seller.count <= 999
@order_seller.listing.update! listing_status: 1
end
end
我收到一条错误消息,指出注释掉的部分不存在update_column
方法。
使用未注释掉的部分,我得到:未定义的方法列表
一旦创建了order_1并且列表订单低于特定阈值,如何更新列表listing_status?
答案 0 :(得分:0)
还要检查回调after_create
,after_update
..,并将逻辑移至模型