Afficher un tableau d'images

bonjour,

Je bloque sur un problème tout simple à priori, afficher des images dans
un tableau.

Je récupère la liste d’images dans mon controleur, j’utilise un helper
pour déterminer le nombre de lignes à afficher en fonction de la taille
des vignettes mais je bute sur le moyen de générer les

du tableau
en fonction du nombre de lignes…

Si j’utilise

<% for image in @images -%> <% end %>
<%= image_tag(image.url, :alt => image.title, :size => "140x110") %>

j’ai alors un ascenseur horizontal désagréable lorsqu’il y a trop d’images.

si quelqu’un a une idée, voire un plugin.

Salut Zambra,

Je n’ai pas essayé (je n’ai malheureusement pas le temps
immédiatement) mais ce qui me viens en premier à l’esprit c’est ça :

DANS TON HELPER:
def tableau_d_images(collection, nombre_de_colonnes=3)
for groupe_d_images in collection.group_by(nombre_de_colonnes) do


for image in groupe_d_images
“” image_tag image.url, :alt => image.title, :size =>
‘140x110’ “”
end
“”
end
end

DANS TA VUE:
<%= tableau_d_images(@collection, 4) %>

Dis-moi si ça marche, je n’ai jamais utilisé group_by() :slight_smile:

NP

Le 1 août 06 à 12:29, Zambra a écrit :

Je n’ai pas essayé (je n’ai malheureusement pas le temps immédiatement)
mais ce qui me viens en premier à l’esprit c’est ça :

Merci Nicolas, je vais essayer ça ce soir

En fait j’ai subitement eu un doute alors que je consultais la doc de
rails pour autre chose et j’ai vérifé : ce n’est pas group_by mais
in_groups_of et ma syntaxe est mauvaise… Je te conduisais dans le mur
quoi. Voilà qui doit marcher mieux, (là c’est testé, ça marche nikel :slight_smile: :

Merci, c’est nickel ! et en plus, je découvre in_groups_of qui est bien
pratique

   groupe_d_images.each do |image|
     to_print << "<td> #{image_tag image.url, :alt =>

image.title, :size => ‘140x110’ } " unless image.nil?
end
to_print << “”
end
to_print << " \n"
return to_print.join("\n")
end

Merci Nicolas, j’ai utilisé ton code comme base aujourd’hui pour un
formulaire HABTM avec cases à cocher, helpFULLL!

reSalut,

En fait j’ai subitement eu un doute alors que je consultais la doc de
rails pour autre chose et j’ai vérifé : ce n’est pas group_by mais
in_groups_of et ma syntaxe est mauvaise… Je te conduisais dans le
mur quoi. Voilà qui doit marcher mieux, (là c’est testé, ça marche
nikel :slight_smile: :

def tableau_d_images(collection, nombre_de_colonnes=3)
groupes_d_images = []
collection.in_groups_of(nombre_de_colonnes) {|collection_element|
groupes_d_images << collection_element }
to_print = [“

”]
groupes_d_images.each do |groupe_d_images|
to_print << “”
groupe_d_images.each do |image|
to_print << “” unless image.nil?
end
to_print << “”
end
to_print << “
#{image_tag image.url, :alt =>
image.title, :size => ‘140x110’ }
\n”
return to_print.join(“\n”)
end

Attention : unless image.nil? est important parce que in_groups_of()
produit des tables avec des objets nil si ta collection n’est pas
divisible par ton nombre de colonnes :
ex. : 3 col. et 7 objects : [[a, b, c], [d, e, f], [h, nil, nil]]

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