依赖=>摧毁一个“has_many通过”关联

当使用:through选项时,显然依赖=> destroy将被忽略。

所以我有这个…

class Comment < ActiveRecord::Base has_many :comment_users, :dependent => :destroy has_many :users, :through => :comment_users ... end 

…但删除评论不会导致关联的comment_userlogging被删除。

那么推荐的方法是什么,然后,使用时:级联删除:通过?

谢谢

显然:依赖不被忽视!

真正的问题是,我打电话给Comment.delete(id) ,直接到数据库,而我现在使用Comment.destroy(id)加载Comment对象,并调用destroy()。 这拿起:dependent => :destroy ,一切都很好。

原始的海报的解决scheme是有效的,但是我想指出,这只适用于,如果你有一个该表的ID列。 我更喜欢我的多对多的表只能是两个外键,但我不得不从迁移表定义中删除我的“id:false”级联删除工作。 拥有这个function绝对胜过不在桌子上有一个id列。

如果你有一个多态关联,你应该做@blogofsongs所说的,但是用一个foreign_key属性如下:

 class User < ActiveRecord::Base has_many :activities , dependent: :destroy, foreign_key: :trackable_id end