itérer sur les actifs des résultats record - ruby on rails
J'ai essayé ai trouver cette réponse, et c'est peut-être trop simple...
Dans les rails, quelle est la meilleure façon de parcourir les résultats de activerecord tirer les domaines spécifiques que vous voulez?
J'ai un contrôleur de commentaires (nommé postes) qui tire tous les records:
def index
@posts = Post.find(:all)
end
Puis dans la vue index, lorsque j'utilise <%= @postes %> je reçois toutes les données...ce qui est excellent...
#<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">
Comment puis-je maintenant parcourir de test afin que l'affichage montre les données à partir des commentaires et created_at champs:
Voici le premier commentaire, 2012-05-09 04:21:16
Voici le deuxième commentaire, 2012-05-09 05:20:03
J'ai essayé suivantes et obtenez un message d'erreur.
<% @posts.each do |c| %>
<%= c.posts.comments %>
<%= c.posts.created_at %>
<% end %>
- Eh bien, quelle est l'erreur que vous obtenez?
Vous devez vous connecter pour publier un commentaire.
Le "c" dans
@posts.each do |c|
représente le poste dans l'objet de@posts
collection.Donc, dans un sens que vous essayez de faire
<%= post.posts.comments %>
.Voici comment le code devrait ressembler à:
Changer les choses pour ce:
Je trouve qu'il rend plus facile pour les gens à suivre si vous le nom de l'intérieure variable comme le singulier de la variable, donc
@posts
sur l'extérieur devientpost
à l'intérieur.Bonne chance!