我有以下型号:导轨 - 帮助了解如何使用:依赖=>:摧毁
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
思考感谢
谢谢,但我不希望在用户被删除时发生这种情况。我想在删除PERMISSION时删除ThreadParticipations。权限将用户加入到项目中。 – AnApprentice
已编辑。你也可以通过在'delete_thread_participation'中调用一个函数,比如'self.user_id.some_function'或'self.project_id.some_function'来获得级联效果。 – ajmartin
这不会比delete_all(:project_id => project_id,: user_id => user_id)# –