Вы можете использовать gsub с регулярным выражением, которое соответствует первому символу каждого слова и заменяет его на верхний регистр:
ruby-1.9.2-p180 :001 > 'omega-3 (DHA)'.gsub(/\b\w/){ $&.upcase }
=> "Omega-3 (DHA)"
[О ... но это слишком сложно, если вы просто хотитепервый символ строки ... gsub будет делать первый символ каждого слова.s[0] = s[0].upcase
будет работать нормально.]