我正在尝试使用Rails渲染集合。如果按照Rails指南关于该主题的部分所述的步骤进行,这看起来是一个简单的操作。
局部视图在渲染集合时非常有用。当您通过
:collection
选项将集合传递给局部视图时,该局部视图将为集合中的每个成员插入一次:
因此,按照这个建议,我声明:
<%= render partial: "comments/comment", collection: @post.comments %>
在局部视图
views/comments/_comment.html.erb
中,我只有以下内容。<div="comment_wrapper">
<p class="comment_name"><%= comment.name %></p>
<p class="comment_date"><%= comment.created_at %></p>
<p class="comment_body"><%= comment.body %></p>
</div>
现在这些部分都会相互嵌套。假设我有两个评论,它将呈现如下:
<div="comment_wrapper">
<p class="comment_name"><%= comment.name %></p>
<p class="comment_date"><%= comment.created_at %></p>
<p class="comment_body"><%= comment.body %></p>
<div="comment_wrapper">
<p class="comment_name"><%= comment.name %></p>
<p class="comment_date"><%= comment.created_at %></p>
<p class="comment_body"><%= comment.body %></p>
</div>
</div>
有人明白这是为什么吗?如何防止它发生?提前感谢。