gpt4 book ai didi

ruby-on-rails - Ruby on Rails-嵌套属性:如何从子模型访问父模型

转载 作者:行者123 更新时间:2023-12-03 12:12:30 25 4
gpt4 key购买 nike

我有几个这样的模特

class Bill < ActiveRecord::Base
has_many :bill_items
belongs_to :store

accepts_nested_attributes_for :bill_items
end

class BillItem <ActiveRecord::Base
belongs_to :product
belongs_to :bill

validate :has_enough_stock

def has_enough_stock
stock_available = Inventory.product_is(self.product).store_is(self.bill.store).one.quantity
errors.add(:quantity, "only #{stock_available} is available") if stock_available < self.quantity
end
end

上述验证显然不起作用,因为当我从票据表单内的嵌套属性中读取bill_items时,在保存之前,属性bill_item.bill_id或bill_item.bill不可用。

那么我该怎么做呢?

最佳答案

这就是我最终解决它的方式;通过在回调上设置父级

  has_many :bill_items, :before_add => :set_nest

private
def set_nest(bill_item)
bill_item.bill ||= self
end

关于ruby-on-rails - Ruby on Rails-嵌套属性:如何从子模型访问父模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2611459/

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