2

重複の可能性:
Rails - :dependent => :destroy の使用方法を理解するのに役立ちます

私は次のモデルを持っています:

User
Permission (user_id, group_id)
Group
Conversation (group_id)
ConversationParticipation (conversation_id)

パーミッション モデルでやりたいことは、パーミッションが破棄されたときに、group_id と user_id に基づいて、関連するすべての ConversationParticipations を削除することです。

私はこれを試しました:

class Permission < ActiveRecord::Base
has_many :conversation_participations, :through => :group, :source => :conversations, :dependent => :destroy

しかし、それはまだそれをカットしていないようです。提案?

ありがとう

4

1 に答える 1

1

Rails ドキュメントの一部has_many

:依存

:destroy に設定すると、destroy メソッドを呼び出すことによって、関連付けられているすべてのオブジェクトがこのオブジェクトとともに破棄されます。:delete_all に設定すると、destroy メソッドを呼び出さずに、関連するすべてのオブジェクトが削除されます。:nullify に設定すると、関連付けられたすべてのオブジェクトの外部キーは、保存コールバックを呼び出さずに NULL に設定されます。:restrict に設定すると、関連付けられたオブジェクトがある場合、このオブジェクトは削除できません。

警告: このオプションは、:through オプションと一緒に使用すると無視されます。

いつでもコールバックを試すことができます。

于 2011-04-23T03:59:20.947 に答える