在Rails Guide中,部分是以“app / views / comments / _comment.html.erb”的名称构建的,并且通过将下面的代码放在文章的show视图中,Rails知道要遍历每个评论并使用正确的部分。怎么知道的?我尝试将部分名称更改为除了单一形式的注释之外的其他内容,但它不起作用。这是某种类型的Rails魔法我应该记住还是有解释?
<%= render @article.comments %>
我也尝试渲染'comments/comment'
而它不起作用,但为什么'comments/form'
稍后会在指南中使用?
答案 0 :(得分:2)
这是使用Rails约定的一些简写。
这是写同样事情的长篇形式。
<% @article.comments.each do |comment| %>
<%= render partial: 'comment', locals: { comment: comment } %>
<% end %>
您也可以在渲染中使用集合。
<%= render partial: 'comment', collection: @article.comments %>
您可以阅读指南中的选项;
以及此处的实施文档;
答案 1 :(得分:1)
部分在渲染集合时非常有用。通过:collection选项将集合传递给partial时,将为集合中的每个成员插入一次partial:
在您的示例中,<%= render @article.comments %>
是撰写<%= render partial: "comment", collection: @article.comments %>