博客评论如何运作?

时间:2016-03-30 17:03:49

标签: ruby-on-rails ruby blogs

我正在观看mckenzie https://www.youtube.com/watch?v=BI_VnnOLSKY的rails教程,并且无法理解他如何使评论适用于每个帖子。 _form partial看起来像这样:

<%= 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>

那么,他怎么能够只是呼唤&#34; comment.name&#34;没有使用@符号,如果没有循环,如@ comment.each do | comment |

然后他像这样在post / show.html.erb中呈现所有内容:

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

在第二行中,如何才能将注释作为一个方法来调用_comment partial?

最后继承人评论控制器如何:

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

    redirect_to post_path(@post)

end

非常感谢!

1 个答案:

答案 0 :(得分:0)

当您使用render将数组传递给render @post.comments时,会发生一些魔法并且rails会使用_comment部分来渲染每个注释。它全部在documentation for CAST中描述。