2011-03-28 58 views
0

我有一个模型Comment如何删除在Rails 3的命令行中已经删除关联的对象的所有实例?

Comment(id: integer, body: string, notified: boolean, user_id: integer, stage_id: integer, created_at: datetime, updated_at: datetime) 

注释belongs_to : stage

所以,当我给你一个评论,说用ID12在我的Rails控制台中的局部变量comment12,我得到的是这样的:

comment12.stage => #<Stage id: 19, project_id: 8, user_id: 1, name: "Wedding", created_at: "2011-02-25 09:05:35", updated_at: "2011-02-25 09:05:35"> 

不过,在我设置上的关联的依赖销毁所有评论当一个阶段被删除时,我在db中留下了一些错误的评论。

那么如何从Rails控制台中删除所有具有不再存在stage_id的注释?

有没有可以运行的快捷命令,可以轻松执行?

谢谢。

回答

2

这应该工作:

Comment.joins("LEFT OUTER JOIN stages ON comments.stage_id = stages.id").where("stages.id IS NULL").each do |comment| 
    comment.destroy 
end 
+0

真棒。奇迹般有效。谢谢。 – marcamillion 2011-03-28 05:13:35

相关问题