On 7/21/06, Jean-François <[EMAIL PROTECTED]> wrote:
Salut Patrick,

> J´ai 3 tables:
> Images(id,name,dirid) #dirid est la foreign key de Album.url, l´adresse de
> limage
> Albums(id,url)
> Tags(id,name)
> ImagesTags(image_id,tag_id)
>
> J´ai une relation has_and_belongs_to_many entre tags et
> images et une relation belongs_to/has_many entre albums
> et images (un album a plusieurs images, une image appartient
> a un seul album)
> Dans mon views/tag/show.rhtml je voudrais afficher toutes les
> images appartenant au tag en question et pour chaque image
> l´album auquel elle appartient, voilà comment je fais:

D'après ce qui précède, tu itères d'abord sur les images et
pour chaque image, tu affiches l'album correspondant ou les
informations concernant l'album correspondant. Or d'après ce
qui suit, tu itères sur les albums et ensuite sur les images.

oui en fait c´est ça que je veut faire donc le code devrait plutot ressembler à ça:

> <% for album in @images %>
> <% for image in @albums  %>
>    <% if @tag.images.include? image %>  <div id="images"> <%=
> show_image album.url+'/'+image.name %><% end %>
> <% end %>
> <% end %>

et dans mon tags_controller j´ai ça:
 def show
    @tag = Tag.find(params[:id])
    @albums = Album.find_all
    @images = Image.find_all
  end
 

Tu ne dis rien sur l'ordre d'apparition des albums ou des images.
Du coup, je suppose que ça importe peu et je propose
ça : (pseudocode)

contrôleur :

@tag = Tag.find(params[:id], :include => [ :image ])

Chaque image appartient à un seul album mais l´ordre d´affichage n´est pas important donc je pense que ça devrait aller.

vue :

<% @tag.images.group_by(&:dirid).each do |key,ary|
   album = ary.first.album -%>
   (affichage informations relatives à l'album)
   ...
  <%= album.name %>
<%   for img in ary -%>
      (affichage d'une image)
      <%= img.name %>
      ...
<%   end -%>
<% end -%>

A+

    -- Jean-François.

Merci beaucoup! il faut que je teste chez moi d´abord parceque j´ai pas le net pour le moment.

Pat


_______________________________________________
Railsfrance mailing list
[email protected]
http://lists.rubyonrails.fr/mailman/listinfo/railsfrance

Répondre à