0
好吧,我正在使用Awesome嵌套集在軌道上使用嵌套評論系統。我目前正在實現一個遞歸函數來使嵌套工作(我知道這對於性能來說非常低效,但我只是希望在調整性能之前就能夠工作)。幫助方法範圍問題的遞歸函數
在我的應用程序控制器所以我有這樣的事情(建築HTML):
def create_comments_list(comment, commentlist)
commentlist += "<div class=\"comment\" style=\"padding-left:20px;\"><div style=\"display:none;\" class=\"parent_id\">#{comment.id}</div>#{comment.user.name}:<br/><div class=\"ccontent\">#{comment.content}</div><br/><a href=\"#reply\" class=\"reply\" style=\"color:black;\">Reply</a>";
children = comment.children
children.each do |c|
create_comments_list(c, commentlist)
end
commentlist += "</div><div class=\"shortdivider\"> </div>"
commentlist
end
我在控制器調用這樣的:
@commentlist = create_comments_list(c, @commentlist)
這似乎是拼盡了全力遞歸...然而,在1條家長評論和1條兒童評論的情況下,評論列表只會吐出家長評論。如果我記錄的東西,我可以看到,孩子確實被追加到遞歸調用中的@commentlist,但是當它展開到父節點進入遞歸的地方時,commentlist變量不再包含子節點。看來我不明白這些變量的範圍......我需要評論列表在內部遞歸調用解除後保留它的值。任何人都可以擺脫一些光? (或者一些更好的方法來做這件事嗎?我的壞風格響鈴正在我頭上)
謝謝你的 – Msencenb