2010-06-07 3 views
0

J'essaye seulement d'aller chercher le premier enregistrement dans ma table pour l'affichage. Je crée un site sur lequel un utilisateur peut télécharger plusieurs images et les joindre à un post, mais je souhaite uniquement afficher la première vue d'image pour chaque publication.Récupérer uniquement le premier enregistrement de la table (via la vue) sans changer de contrôleur?

Pour plus de précisions posts belong_to projects. Ainsi, lorsque vous êtes sur la page des projets, vous voyez plusieurs articles. Dans cette vue, je veux seulement afficher la première image pour chaque publication. Y at-il un moyen de faire cela dans la vue sans affecter le contrôleur (comme plus tard je veux permettre aux utilisateurs de parcourir toutes les photos grâce à l'ajout d'une lightbox). Voici mon code /views/posts/_post.html.erb:

<% div_for post do %> 

    <% post.photos.each do | photo | %> 

     <%= image_tag(photo.data.url(:large), :alt => '') %> 
     <%= photo.description %> 
    <% end unless post.photos.first.new_record? rescue nil %> 

     <%= link_to h(post.link_title), post.link %> 
     <%= h(post.description) %> 

     <%= link_to 'Manage this post', edit_post_path(post) %> 

<% end %> 

MISE À JOUR: J'utilise un modèle de photos pour joindre plusieurs photos à chaque poste et en utilisant ici paperclip.

Répondre

0

l'un ou l'autre devrait fonctionner?

post.photos.find(:first) 

or 

post.photos.first 

EDIT: Je pense que le code révisé ressemblerait à ceci?

<% div_for post do %> 
    <% photo = post.photos.first %> 

    <%= image_tag(photo.data.url(:large), :alt => '') %> 
    <%= photo.description %> 

    <%= link_to h(post.link_title), post.link %> 
    <%= h(post.description) %> 

    <%= link_to 'Manage this post', edit_post_path(post) %> 
<% end %> 
+0

est-ce que je dois garder le '... do | photo | ...' ayant du mal à le faire fonctionner. Pouvez-vous inclure la syntaxe complète comme je suis nouveau à ruby ​​et rails. – bgadoci

+0

FYI, quand je fais «<% post.photos.first do | photo | %> 'les images ne s'affichent pas du tout. Voir ma modification que les photos sont dans une table de photos et ajoutées pour poster à travers un modèle de photos, pas de contrôleur pour les photos (ou vue). – bgadoci

+0

va d'abord retourner un seul objet où les photos retournent un tableau, donc non vous n'avez pas besoin de faire le bloc, va mettre à jour – house9

Questions connexes