Obtenha a soma de todos os dígitos em um número

18.to_s.chars.map(&:to_i).reduce(:+) # => 9
123456789.to_s.chars.map(&:to_i).reduce(:+) # => 45

Ele transforma o número em uma string, divide-o em dígitos, transforma cada um em um inteiro e adiciona-os todos juntos.

Funciona com números de qualquer tamanho.