2011-04-30 61 views
0

我想顯示像這樣的職位/ index.html.erb對指數

Post #1 
    Comment #1 for Post #1 
    Comment #2 

Post #2 
    Comment #1 for Post #2 

etc. 

它正常工作,如果我去/職位/ 1 /評論/,/帖子顯示嵌套支架/ 2 /評論/ etc

由於它使用的是索引文件,因此URL中沒有:post_id,它會引發nil錯誤。模型使用適當的have_many和belongs_to。

這裏的routes.rb

resources :posts do 
    resources :comments 
end 

resources :posts 

的一部分,這裏是我的posts_controller.rb的一部分

def index 
@posts = Post.all 
@comments = params[:post_id][:desc] 

respond_to do |format| 
    format.html # index.html.erb 
    format.xml { render :xml => @posts } 
end 
end 

下面是index.html.erb

<% @posts.each do |post| %> 
    <tr> 
    <td><%= post.title %></td> 
    <td><%= link_to 'Show', post %></td> 
    <td><%= link_to 'Edit', edit_post_path(post) %></td> 
    <td><%= link_to 'Destroy', post, :confirm => 'Are you sure?', :method => :delete %></td> 
    </tr> 
<tr><td><%= @comments %></td></tr> 
<% end %> 
</table> 

感謝的一部分!

回答

1

好吧,既然評論屬於給定的文章,你只需要在視圖中有一個單獨的循環來遍歷給定文章的每個評論。

所以採取@comments變量超出你的控制和索引視圖,並在索引視圖做到這一點,而不是在那裏你目前有@comments:

<% for comment in post.comments %> 
    <tr><td><%= comment.user_name %><%= comment.text %></td></tr> 
<% end %> 

我所做的user_name和文本ATTRS起來當然你會使用你的評論模型中的任何東西。

伊恩。

+0

太棒了,它很棒。比我製作它容易得多。 – airlok 2011-05-02 16:21:19