我的实验室模型:导轨 - 连接表删除
class Lab < ApplicationRecord
has_many :chain_offers, dependent: :delete_all
has_many :offers, through: :chain_offers
我加入模型(chain_offers)
class ChainOffer < ApplicationRecord
belongs_to :lab
belongs_to :offer
我的报价模型
class Offer < ApplicationRecord
has_many :chain_offers
has_many :labs, through: :chain_offers
如果我尝试删除实验室,它获取删除,ChainOffer表中的记录也被删除,但在检查Offer.all.count
后,计数仍然与删除前相同。
这样做:
place = Place.find(place_id)
place.offers.each do |offer|
offer.destroy
end
place.destroy
解决了这个问题,但我不知道是否有一种方法可以建立关联,所以我不用写额外的代码。
明确#delete和#destroy之间的区别。你可能想要#destroy。另外,如果你摧毁了一个实验室,那么它听起来像你希望ChainOffers也被销毁,然后任何要约 - 不要求其他ChainOffers(链接到不同的实验室)也被销毁? –