Iterate through a table record


#1

Hello…I’ve searched before posting but can’t find anything. New and
need help.
I want to iterate through some fields in my database table and populate
a html table with their values.

As an example, lets say I have a table (named race) that holds
information on a relay race. I have fields leg1, leg2…leg36 that hold
the miles per leg. I want to be able to run through a loop from 1 to 36
and displays all the legs. I thought this would work:

Name:
<%=h @race.name %>

<% 36.times do |p| %> Leg <%= @race.leg+p %> <% end %>

But I can’t combine @race.leg and p.
Is there a way to increment @race.leg so I don’t have to write
@race.leg1 removed_email_address@domain.invalid36 ?

Any help appreciate - thanks!
…Bill


#2

2008/11/21 Bill M. removed_email_address@domain.invalid

Is there a way to increment @race.leg so I don’t have to write
@race.leg1 removed_email_address@domain.invalid36 ?

Can you change the database structure? I think it would make more sense
to
have a “legs” table in this case. Then you could lookup all legs of a
given
race and iterate through them with @legs.each

So long
Lennart K.


#3

Lennart K. wrote:

2008/11/21 Bill M. removed_email_address@domain.invalid

Is there a way to increment @race.leg so I don’t have to write
@race.leg1 removed_email_address@domain.invalid36 ?

Can you change the database structure? I think it would make more sense
to
have a “legs” table in this case. Then you could lookup all legs of a
given
race and iterate through them with @legs.each

So long
Lennart K.

Lennart…interesting thought, problem is I’ll still have the default
fields I have to deal with (created_at,updated_at, race_id)so it
wouldn’t be a purely ‘leg’ table. I could filter that out I guess but I
want to try to make this work.
Thanks for the reply


#4

A legs table seems more flexible, however:

<% (1..36).each do |p| %> Leg <%= @race.send(('leg' + p).to_sym) %> <% end %>

On Nov 21, 5:59 pm, Bill McGuire removed_email_address@domain.invalid


#5

Harold wrote:

A legs table seems more flexible, however:

<% (1..36).each do |p| %> Leg <%= @race.send(('leg' + p).to_sym) %> <% end %>

On Nov 21, 5:59�pm, Bill McGuire removed_email_address@domain.invalid

Harold…worked just like I wanted. The only thing I had to do was add
‘.to_s’ after ‘p’.
Thanks !