我有以下型号:
User (id)
Project (id)
Permission (project_id, user_id)
Thread (project_id)
ThreadParticipation (thread_id, user_id)
所以这很好用,问题是这样的。当用户离开或从项目中删除时,我需要删除该项目的所有 ThreadParticipation。
例如,如果用户(15)通过删除权限(user_id => 15,project_id => 3)离开项目(3),我需要rails自动删除所有相关的ThreadParticipation记录(其中ThreadParticipation通过线程,属于project_id 3,并且 ThreadParticipation.user_id = 15。
我试过这个,但它没有做任何事情:
has_many :thread_participations, :foreign_key => :user_id, :dependent => :destroy
想法?谢谢