質問

どうやら依存=>も使用している場合は無視されて破棄:オプションを使用して

だから私はこれを持っている...

class Comment < ActiveRecord::Base
  has_many :comment_users, :dependent => :destroy
  has_many :users, :through => :comment_users
  ...
end

...しかし、コメントを削除すると、削除されたばかりの関連comment_userレコードにはなりません。

を通じて:使用している場合

カスケード削除のために、そして、推奨されるアプローチは何です

おかげ

役に立ちましたか?

解決

どうやら:!依存が無視されていません。

本当の問題は、私は今、コメントオブジェクトをロードし、呼び出しが(破壊Comment.delete(id)を使用するのに対し、私はそれで)、ストレートデシベルに行くComment.destroy(id)を呼んでいたということでした。このピック:dependent => :destroyアップし、すべてがうまくています。

他のヒント

は、元のポスターのソリューションは、私はあなたがそのテーブルのidカラムを持っている場合にのみ動作することを指摘したかったが、有効です。私は2つの外部キーであることを私の多対多のテーブルを好むが、私は私の「ID:偽」を削除しなければならなかった仕事への削除カスケードのための移行テーブル定義から。この機能は、間違いなく、テーブルの上にidカラムを持っていない上回る持っています。

あなたはポリモーフィックな関連を持っている場合は、

、あなたは@blogofsongsが言ったことを行うが、そのようなFOREIGN_KEY属性を持つ必要があります:

class User < ActiveRecord::Base
  has_many :activities , dependent: :destroy, foreign_key: :trackable_id
end
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top