2011-08-24 70 views
5

我想顯示註釋樹。我在另一種觀點認爲移動評論格,並在_comments.html.haml寫道下一行:在Rails 3中遞歸渲染集合

= render :partial => 'single_comment', :collection => @post.comments.where(:parent_id => nil) 

_single_comments.html.haml

- if comment.id != nil 
    .comment 
    .meta 
     = comment.name 
     says 
    .body 
     = comment.text 
    .answers 
    = render :partial => 'posts/single_comment', :collection => @post.comments.where(:parent_id => comment.id) 

但瀏覽器告訴我一個錯誤:

undefined local variable or method `comment' for #<#<Class:0x00000004e39280>:0x00000004e2f398> 
Extracted source (around line #1): 

1: - if comment.id != nil 
2: .comment 
3:  .meta 
4:  = comment.name 

我試圖添加:as => comment在第一行,但它不起作用。所以作爲使用@comment部分。 也許這是根本錯誤的?

+0

請按照@ Draiken的解決方案或將部分'comment'部分更改爲'single_comment',因爲這是變量按照慣例命名的。 – rubish

回答

8

您必須在兩個渲染線上添加:as => :comment,請記住正在渲染的答案會再次渲染此相同的部分,因此它們也會嘗試渲染答案。

嘗試在註釋和答案渲染部分上添加:as => :comment

+0

謝謝,它的工作原理! – zishe

+0

也許標記答案是正確的併爲它評分? :) – Draiken

+0

對不起,我沒有足夠的聲譽:(我不知道如何賺取它,我還不能回答任何問題:) – zishe