Averaging

Why can I call this
    <td><%= team.players.sum(:misses) %></td>
and this
    <td><%= team.players.sum(:misses) %></td>

but this gives me 0 (some do not have 0 for misses)
                <td><%= team.players.sum(:hit) /
team.players.sum(:misses) unless team.players.sum(:misses) == 0 %></

Say hits = 2 and misses = 4. In Ruby, 2/4 = 0. However, 2.0/4.0 = 0.5. Try those expressions in irb.

To solve your problem, you could convert the numbers to floats: hits.to_f / misses.to_f = 2.0 / 4.0 = 0.5.

The docs for Number#divmod might be helpful.
http://www.noobkit.com/show/ruby/ruby/ruby-core/numeric/divmod.html

Craig