Building a gallery layout

(Sam Mayes) #1

Ive been trying to build a gallery layout for images. let say i have an
object of upto 25 images (results from an activerecord query) that I want to
display on a 5x5 grid but put blanks in the spaces should the result only
have say 13 images in the result. I need to make a table and have it do all
the table rows and columns based on the number f items returned in the ar
object. Does anyone have a quick exaple or a little pseudocode to help me
along. Obviously Im fairly new to ruby so be gentle please. thanks

Sam

(Gavin Kistner) #2

Are you talking about an HTML table, or some other output/layout
mechanism?

(Sam Mayes) #3

html table ideally

Sam

···

On 8/31/05, Phrogz <gavin@refinery.com> wrote:

Are you talking about an HTML table, or some other output/layout
mechanism?

(Josh Charles) #4

psuedo code from the top of my head

array[x,y]
pictures[]
counter = 0

for each array[x]
   puts "<tr>"
   for each array[x][y]
      if ( pictures[ counter ] ) exists
         puts "<td>" + image code + "</td>"
      else
         puts "<td></td>"
      end
      counter ++
   end
   puts "</tr>"
end

Ok, so that would basically get you there. a better way might exist,
but that is my first instinct.

Hope that helps

Josh

···

On 8/31/05, Phrogz <gavin@refinery.com> wrote:

Are you talking about an HTML table, or some other output/layout
mechanism?

(Josh Charles) #5

an array-less way to do it

pictures[]
counter = 0

5.times do
    puts "<tr>"
    5.times do
       if ( pictures[ counter ] ) exists
          puts "<td>" + image code + "</td>"
       else
          puts "<td></td>"
       end
       counter ++
    end
    puts "</tr>"
end

I think that is almost legal ruby code. I'm new to ruby, so I don't
know exactly. There is probably an even better way of doing this.
I'm really gray on ruby array handling

(Sam Mayes) #6

ok here is what i did may not be the most elegant but it works. thanks for
the help. any Ideas to make it better are welcome.

<table>
<tr>
<th>Company</th>
</tr>
<% counter = 0 %>
<% 5.times do %>
<tr>
<% 5.times do %>
<% if @systems[counter] %>
<td>
<table>
<tr>
<td><%= @systems[counter].company.name %></td>
<td><%= @systems[counter].model %></td>
<td><%= @systems[counter].sid %></td>
<td><%= @systems[counter].sm_img %></td>
</tr>
<% for price in @systems[counter].prices %>
<tr>
<td><%= price.price %></td>
<td><%= price.store_name %></td>
<td colspan="2"></td>
</tr>
<% end %>
</table>
</td>
<% else %>
<td></td>
<% end %>
<% counter+=1 %>
<% end %>
</tr>
<% end %>

</table>

···

On 8/31/05, Josh Charles <josh.charles@gmail.com> wrote:

an array-less way to do it

pictures[]
counter = 0

5.times do
puts "<tr>"
5.times do
if ( pictures[ counter ] ) exists
puts "<td>" + image code + "</td>"
else
puts "<td></td>"
end
counter ++
end
puts "</tr>"
end

I think that is almost legal ruby code. I'm new to ruby, so I don't
know exactly. There is probably an even better way of doing this.
I'm really gray on ruby array handling