Вы также можете избежать неприятностей, используя max_by
:
>> a = %w{1 2 4 5 3 8 22 929 1000 2}
=> ["1", "2", "4", "5", "3", "8", "22", "929", "1000", "2"]
>> m = a.max_by { |e| e.to_i }
=> "1000"
Вы также можете использовать другую версию max_by
:
m = a.max_by(&:to_i)
, чтобы избежать лишнего шума "блока, который просто вызывает метод".
Но это, вероятно, упражнение по изучению блоков Ruby, поэтому использование существующих частей стандартных библиотек не считается. OTOH, хорошо знать, что находится в стандартных библиотеках, поэтому добавление к max_by
или max
также будет считаться учебным упражнением.