Display table data problem

Hello! I'm pulling my hair out trying to get a simple view to display
correctly.

I need to display the practice info for each of the providers in my
database. Each provider has multiple practices. I would like the
second, third, fourth ... provider_id, location and provider_no to
line up under the first provider_id, location, etc.

My problem is that each additional practice is added as a new row,
aligned with the left margin, instead of under the appropriate header.
I don't know if this is an html issue, or a ror issue. Because I'm
dangerously newbie.

This is what the view looks like:

All Providers:
Title First Name Last Name License ID Location Provider Number
Dr Tom Close MD 4 RTH T01
Dr Evan Spam MD 5 RTH T02
Dr Ted Blue MD 6 RTH T10
6 RMC N07
Dr Jack Horner MD 7 RMC N09
7 RTH T10
Dr John Left MD 8 RMC N34
8 RTH T14

This is the view file [lookup.rhtml]:

<html>
</br>
<h1>All Providers:</h1>
<body>
<table border="1">
<tr>
<th>Title</th>
<th>First Name</th>
<th>Last Name</th>
<th>License</th>
<th>ID</th>
<th>Location</th>
<th>Provider Number</th>
</tr>
<% for provider in @providers %>
<tr>
<td><%= provider.title %></td>
<td><%= provider.first_name %></td>
<td><%= provider.last_name %></td>
<td><%= provider.lic_type %></td>
<% for practice in provider.practices %>
<td><%= practice.provider_id %></td>
<td><%= practice.location %></td>
<td><%= practice.provider_no %></td>
</tr>
<% end %>
<% end %>
</table>

<br />

Here are the models:

class Provider < ActiveRecord::Base
has_many :identifiers
has_many :practices
end

class Practice < ActiveRecord::Base
belongs_to :provider
end

Here is the related providers_controller def:

def lookup
@providers = Provider.find(:all, :include =>[:practices])
end

Any insight anyone could provide would be most welcome. Thank you!

i'm not sure if i understand exactly how you want to display this,
a bit of indentation shows at least one obvious error (i think)

<% for provider in @providers %>
  <tr>
    <td><%= provider.title %></td>
    <td><%= provider.first_name %></td>
    <td><%= provider.last_name %></td>
    <td><%= provider.lic_type %></td>
    <% for practice in provider.practices %>
      <td><%= practice.provider_id %></td>
      <td><%= practice.location %></td>
      <td><%= practice.provider_no %></td>

    </tr> <- should be outside loop

<% end %>
<% end %>

this would most likely work better:
<% for provider in @providers %>
  <tr>
    <td><%= provider.title %></td>
    <td><%= provider.first_name %></td>
    <td><%= provider.last_name %></td>
    <td><%= provider.lic_type %></td>
    <% for practice in provider.practices %>
      <td><%= practice.provider_id %></td>
      <td><%= practice.location %></td>
      <td><%= practice.provider_no %></td>
    <% end %>
  </tr>
<% end %>

but it wouldn't work good, since it would leave the first cells empty

this would work better i think
<% @providers.each do |provider| %>
  <tr>
    <td><%= provider.title %></td>
    <td><%= provider.first_name %></td>
    <td><%= provider.last_name %></td>
    <td><%= provider.lic_type %></td>
  </tr>
    <% provider.practices.each do |practice| %>
      <tr>
      <td>$nbsp</td> <td>$nbsp</td> <td>$nbsp</td> <td>$nbsp</td>
      <td><%= practice.provider_id %></td>
      <td><%= practice.location %></td>
      <td><%= practice.provider_no %></td>
      </tr>
    <% end %>
<% end %>

but it would create a new row for every practice
which you could handle with a flag or something like

<% @providers.each do |provider| %>
  <tr>
    <td><%= provider.title %></td>
    <td><%= provider.first_name %></td>
    <td><%= provider.last_name %></td>
    <td><%= provider.lic_type %></td>
    <% provider.practices.each_with_index do |practice, index| %>
      <% if index == 0 then %>
        <tr>
      <% else %>
        <tr>
        <td>$nbsp</td> <td>$nbsp</td> <td>$nbsp</td> <td>$nbsp</td>
      <% end %>
      <td><%= practice.provider_id %></td>
      <td><%= practice.location %></td>
      <td><%= practice.provider_no %></td>
      </tr>
    <% end %>
<% end %>

something on that line should work
there are a few nice effects you can get with the colspan html attribute
in cases like that