Build a table with content_tag's

Hi,

I have a fastcsv collection (2d array) that I want to display as a
table. I figured the best way would be a helper function, and build
the table dynamically.

    table = content_tag(:table,
       #tbody begind
       content_tag(:tbody,
           #tr begin
           collection.collect{|row| content_tag(:tr,
               #td begin/end
               row.collect{|field| content_tag(:td, field)},
           :class => cycle('list-line-odd', 'list-line-even'))} #tr
end
       ), #tbody end
    :class => 'grid') #table end

That works really well until I get to the point where I want to add a
thead or a tfoot. Is the best way to use a helper for each section
rather than doing the entire table?