如果我有一個自我指涉的主題類,我想通過我所有的子主題的遞歸循環,這將是一個很好的Ruby的方式來做到這一點:如何通過自引用子主題進行遞歸搜索?
@category.topics.all(:parent_id => topic.id).each do |subtopic|
subtopic.delete_tags
@category.topics.all(:parent_id => subtopic.id).each do |subsubtopic|
subsubtopic.delete_tags
@category.topics.all(:parent_id => subsubtopic.id).each do |subsubsubtopic|
subsubtopic.delete_tags
@category.topics.all(:parent_id => subsubsubtopic.id).each do |subsubsubsubtopic|
subsubsubtopic.delete_tags
end
end
end
end
這會進入無限循環嗎? – jprete 2009-09-14 22:07:08
如果數據庫中存在任何與'parent_id'相同的主題,那麼它們會。 – rcoder 2009-09-14 22:10:18
@jprete:如果某個話題是自身的一個子話題,那它只會是無限的。但是這本身就像是一個錯誤。否則遞歸會在到達沒有子主題的主題時結束。但它似乎應該是':parent_id => self.id'。 – Chuck 2009-09-14 22:17:28