Introducción a Rails

Usando parciales

Primero, creemos el parcial de comentario para extraer el mostrar de todos los comentarios del artículo. Crea el archivo app/views/comments/_comment.html.erb y coloca lo siguiente:

<p>
  <strong>Commenter:</strong>
  <%= comment.commenter %>
</p>

<p>
  <strong>Comment:</strong>
  <%= comment.body %>
</p>

Luego puedes cambiar app/views/posts/show.html.erb para que se vea de esta manera:

<p>
  <strong>Title:</strong>
  <%= @post.title %>
</p>

<p>
  <strong>Text:</strong>
  <%= @post.text %>
</p>

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

<h2>Add a comment:</h2>
<%= form_for([@post, @post.comments.build]) do |f| %>
  <p>
    <%= f.label :commenter %><br />
    <%= f.text_field :commenter %>
  </p>
  <p>
    <%= f.label :body %><br />
    <%= f.text_area :body %>
  </p>
  <p>
    <%= f.submit %>
  </p>
<% end %>

<%= link_to 'Edit Post', edit_post_path(@post) %> |
<%= link_to 'Back to Posts', posts_path %>

Ésto hará que el parcial en app/views/comments/_comment.html.erb se haga render una vez por cada comentario en la colección @post.comments. A medida que el método render itera sobre la colección @post.comments, asigna cada comentario a la variable local llamada igual que el parcial, en este caso comment que luego está disponible en el parcial para que la usemos.