если ваши объекты Deal являются объектами ActiveRecord (что обычно имеет место для моделей), вы можете запустить счетчик в базе данных:
won = Deal.count_by_sql("select count(*) from deals where status = 'won'")
Другой способ сделать этобыло бы написать SQL-запрос, который будет делать все подсчет для вас, и сгруппировать их по статусу:
count_by_status = Deal.find_by_sql("select status,count(*) from deals group by status;")
Затем вы можете использовать результат (который будет массивхешей я думаю).