将评论移至部分视图时出现问题

时间:2011-04-07 07:03:12

标签: ruby-on-rails ruby ruby-on-rails-3 loops partial

所以最初我在视频视图中有这样的结构:

<% @video.comment_titles.each do |comment_title| %>
    <%= comment_title.title %>
    <% comment_title.comments.each do |comment| %>
        <%= comment.body %>
    <% end %>
<% end %>

这很好用,因为当用户添加评论时,他们选择了一个评论标题,然后将其添加到该标题中,然后将所有属于标题的评论添加到该标题中。但是,我现在想把评论放到一个部分,所以我做了类似的事情:

<% @video.comment_titles.each do |comment_title| %>
    <%= comment_title.title %>
    <% comment_title.comments.each do |comment| %>
       <%= render @video.comments %>
    <% end %>
<% end %>

我将所有评论生成放入comments / _comment.html.erb

然而,这并没有添加评论,因为我打算添加它们。所有评论标题都会添加评论,即使它们只属于一个评论标题。

所以我的问题是如何在注释目录中将注释的创建移动到局部,同时保持我的视觉结构不变?

2 个答案:

答案 0 :(得分:2)

你的意思是:

<% @video.comment_titles.each do |comment_title| %>
  <%= comment_title.title %>

  <%= render comment_title.comments %>
<% end %>

答案 1 :(得分:2)

那是因为你将视频评论的所有 - @video.comments - 传递给了部分。变化:

<%= render @video.comments %>

为:

<%= render comment %>