Tidying up views.

Hi,

I have the following code in one of my partials and it's slightly
ridiculous so I was wondering whether anyone could give me some hints
as to the best way to tidy it up. The formatting performed here gets
performed in a number of places throughout the views.

I'm not sure whether to add methods to the model to deal with this
formatting or to use helpers or what.

I'd also be able to go the other way when it comes to the data fields,
i.e., be able to enter '1.8 M' in a form field and have that converted
to bytes.

<tr class="<%= cycle('even_row', 'odd_row') %>">
  <td class="centre"><%= top_talker_row.rank %></td>
  <td><%= h top_talker_row.ip_address %></td>
  <td><%= h top_talker_row.date_first_seen.to_s(:db) %></td>
  <td><%= h top_talker_row.data_date.date.strftime("%Y-%m-%d")%></td>
  <td><%= h number_to_time(top_talker_row.duration) %></td>
  <td><%= h top_talker_row.protocol.humanize %></td>
  <td><%= h
number_with_delimiter(number_with_precision(top_talker_row.flows, 0))
%></td>
  <td><%= h
number_with_delimiter(number_with_precision(top_talker_row.packets,
0)) %></td>
  <td><%= h number_to_human_size(top_talker_row.bytes) %></td>
  <td><%= h
number_with_delimiter(number_with_precision(top_talker_row.packets_per_second,
0)) %></td>
  <td><%= h
number_with_delimiter(number_with_precision(top_talker_row.bits_per_second,
0)) %></td>
  <td><%= h number_to_human_size(top_talker_row.bytes_per_packet) %></

  <td><%= h top_talker_row.network.name.humanize %></td>
  <td><%= h top_talker_row.top_talker_type.name.titlecase %></td>
  <td class="left-separator action-cell center">
    <%= link_to(
        image_tag('icons/application_form_magnify.png', :alt => 'Show'),
        top_talker_row,
        :title => 'Show'
      )
    %>
  </td>
</tr>

Any help would be appreciated,
Thanks,
Toby

that part's easy:
http://api.rubyonrails.com/classes/ActiveSupport/CoreExtensions/Numeric/Bytes.html