マイラボモデル:Railsの - 結合テーブルの削除
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(別のLabsにリンクしているもの)も破壊される必要がありますか? –