2012-05-10 10 views
5

He estado tratando de encontrar obtuvo esta respuesta, y quizás es demasiado simple ...iterar a través de resultados récord activos - rubí en los carriles

En los carriles, ¿cómo es la mejor manera de iterar a través de los resultados de activerecord tirar de la campos específicos que quieres?

que tienen un controlador para comentarios (puestos con nombre) que tira de todos los registros:

def index 
@posts = Post.find(:all) 
end 

Luego, en la vista del índice, cuando uso <% =% @posts> consigo todos los datos .. .que es grande ...

#<Post id: 1, user_id: "9", picture: nil, comments: "here's a first comment", title: nil, twitter: nl, frame: nil, created_at: "2012-05-09 04:21:16", updated_at: "2012-05-09 04:21:16"> #<Post id: 2, user_id: "9", picture: nil, comments: "here's a second comment", title: nil, twitter: "please", frame: nil, created_at: "2012-05-09 05:20:03", updated_at: "2012-05-09 05:20:03"> 

¿Cómo puedo ahora iterar a través de la prueba para que la vista se muestran los datos de los campos de comentarios y created_at:

Este es el primer comentario, 2012-05-09 04:21:16

Aquí está el segundo comentario, 2012-05-09 05:20:03

He intentado lo siguiente y obtener un error.

<% @posts.each do |c| %> 
    <%= c.posts.comments %> 
    <%= c.posts.created_at %> 
<% end %> 
+0

Bueno, ¿cuál es el error que está obteniendo? – DVG

Respuesta

15

la "C" en @posts.each do |c| representa el objeto específico mensaje en la colección @posts.

Por lo tanto, en cierto sentido usted está tratando de hacer <%= post.posts.comments %>.

Así es como el código debería ser:

<% @posts.each do |p| %> 
    <%= p.comments %> 
    <%= p.created_at %> 
<% end %> 
+0

gracias por la ayuda! – user749798

+0

¡Ningún problema! Ahora solo marque la respuesta como aceptada si pudiera. – messick

+0

hecho. ¡gracias! – user749798

8

cambiar las cosas a esto:

<% @posts.each do |post| %> 
    <%= post.comments %> 
    <%= post.created_at %> 
<% end %> 

Me parece que hace que sea más fácil para la gente a seguir si el nombre de la variable interna que el singular de la variable de salida - por lo tanto @posts en el exterior se convierte en post en el interior.

¡Buena suerte!

Cuestiones relacionadas