My bad! I had to specify this:
<tr><td colspan="7"><hr></td></tr>
to get the <hr> to cover the entire table.
Note that if you're using XHTML, <hr> is invalid. Use <hr /> instead.
I'm curious why you're using <hr> here rather than just using CSS to style your <table>, <tr>, and <td> elements? <hr> is pretty much just a style element (i.e., it doesn't convey meaning), and it's generally better to separate your content (the HTML) from presentation (the CSS).
Here are some other hints you might consider:
<% counter = counter + 1 %>
<% counter += 1 %>
(And if you're immediately incrementing your counter, you might as well initialize it to what you want and increment at the bottom of the loop rather than the top.)
<%= "<tr id=\"row-#{counter}\"><hr>" %> <===================
As a matter of style, I find it much harder to read tags which are quoted. The idea of using an erb template is that you can use your tags as tags rather than building up and printing strings, e.g.,
<tr id="row-<%= counter %>">
<td><%= idea.send("description")[0,145]%>
<% if idea.description.length > 145 %>
...
<% end %>
</td>
You can use the truncate() helper to handle shortening idea.description rather than handling it yourself:
<td><%= h truncate(idea.description, 145) %></td>
It's also a good idea to use the h() helper to html-escape your strings.
<td><%= idea.send("date_entered") %></td>
<td><%= idea.send("source") %></td>
I'm not quite sure why you're using #send here rather than just
<td><%= h idea.date_entered %></td>
<td><%= h idea.source %></td>
Note, I've again used the h() helper method.
Putting these all together, you get (untested):
<table>
<tr>
<th>Description</th>
<th>Date Entered</th>
<th>Source</th>
<th>Tags</th>
<th colspan="3"></th>
</tr>
<% counter = 1 %>
<% for idea in @ideas %>
<tr id="row-<%= counter %>">
<td><%= h truncate(idea.description, 145) %></td>
<td><%= h idea.date_entered %></td>
<td><%= h idea.source %></td>
<td><%= h idea.tag_names.join(', ') %></td>
<td><%= link_to 'Show', :action => 'show', :id => idea %></td>
<td><%= link_to 'Edit', :action => 'edit', :id => idea %></td>
<td><%= link_to 'Destroy', { :action => 'destroy', :id =>
idea }, :confirm => 'Are you sure?', :method => :post %></td>
</tr>
<% counter += 1 %>
<% end %>
</table>
Personally, I think that's a little easier to read, and perhaps more idiomatic.
Hope this helps.
Michael Glaesemann
grzm seespotcode net