依存=は>協会「を通じてhas_manyの」上の破壊します
-
22-09-2019 - |
質問
どうやら依存=>も使用している場合は無視されて破棄:オプションを使用して
だから私はこれを持っている...
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
所属していません StackOverflow