博客评论如何运作?

How does blog comments works?

我正在观看 mckenzie https://www.youtube.com/watch?v=BI_VnnOLSKY 的 rails 教程,无法理解他是如何为每个 post 制作评论的。 _form 部分看起来像这样:

<%= form_for([@post, @post.comments.build]) do |f| %>
<p>
    <%= f.label :name %>
    <%= f.text_field :name %>
</p>

<p>
    <%= f.label :description %>
    <%= f.text_area :description %>
</p>

<p>
    <%= f.submit %>
</p>

<% end %>

那他为什么要打电话给这个 [@post, @post.comments.build] ??

然后他为 _comments 制作了另一个部分,如下所示:

<div>
    <h3><%= comment.name %></h3>
    <p><%= comment.description %></p>
</div>

那么,如果没有像 @comment.each do |comment|

这样的循环,他怎么能不使用 @ 符号就调用 "comment.name"

然后他将 post/show.html.erb 中的所有内容渲染成这样:

<h2><%= @post.comments.count %> Comments</h2>
<%= render @post.comments %>

在第二行中,如何能够将评论作为一种方法仅将其用于_comment部分?

最后是评论控制器:

def create
    @post = Post.find(params[:post_id])
    @comment = @post.comments.create(comment_params)

    redirect_to post_path(@post)

end

非常感谢!

当你像他对 render @post.comments 那样将一个数组传递给 render 时,就会发生一些魔法,rails 使用 _comment 部分呈现每个评论。 API.

中都有描述