Sortable List and Table Rows

Funny little quirk I just encountered, and I wanted to post it where you might find it one day. If you're using the Proto/Scripty sortable helper in Rails, and you want to sort a table, you need to put the HTML ID that you use to identify your list collection on the tbody tag, not the table itself. It's the difference between this:

<table id="sort_list">
<thead>
</thead>
<tbody>
<tr id="id_<%= role.id %>"> ...</tr>
...
</tbody>
</table>

...which doesn't work at all, but doesn't throw any JavaScript errors, and this:

<table>
<thead>
</thead>
<tbody id="sort_list">
<tr id="id_<%= role.id %>"> ...</tr>
...
</tbody>
</table>

...which works perfectly.

The same helper tag in either case:

<%= sortable_element 'sort_list',
:url => { :id => @campaign.id, :action => "sort_team" },
:tag => 'tr',
:complete => visual_effect(:highlight, 'sort_list')
%>

Hope this keeps someone else from panicking.

Walter