2011-03-28 59 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

相關問題