2011-11-13 15 views
0

これはおそらくかなりシンプルですが、実装方法がわかりません。私はイベントとユーザーがあり、HABTMに参加しています。ユーザーが削除されると、イベントの関連付けもすべて削除されたいと思います。また、イベントが削除されると、そのイベントのすべてのユーザーの関連付けを削除したいと思います。 (ユーザー自身ではなく、ただの団体です)ありがとう!ここに私のassocationsです:モデルを削除した後の関連付けを削除する方法

イベント:

has_and_belongs_to_many :users, :uniq => true 

はユーザー:

has_and_belongs_to_many :events, :uniq => true 

答えて

0

試してください:扶養家族=>:破壊してください。がんばろう。

has_and_belongs_to_many :events, :uniq => true, :dependents => :destroy 

その他の要件があります。詳しくは、ドキュメントをご覧ください。

また、my_object.my_dependents.destroy_allを試すこともできます。しかし、HABTMの関係を考えれば、すべてが一緒につながっていると、すべてが削除される可能性があります。

ドキュメントとリンケージからのメモ: 多対多の関係を構築する方法を選択することは、必ずしも単純ではありません。リレーションシップ・モデルを独自のエンティティーとして扱う必要がある場合は、has_many:throughを使用します。従来のスキーマを操作する場合や、関係自体を直接使用しない場合は、has_and_belongs_to_manyを使用してください。

詳細については、http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html

0

あなたが最初にあなたの子要素を削除してから、自分の親要素に移動する必要があります。両方のシナリオでこれを行う必要があります。

理由は?その親キーを削除すると、その子が孤立し、もうアクセスできなくなります。

幸運にも、これはいくつかの助けを願っています。

+0

私はあなたが何を意味するか分かりません。アソシエーションが両方のモデルが存在することに依存していると指定する方法はありませんか? –

関連する問題