Чтобы получить строковую версию объекта, мы просто записываем после него .to_s:
var1 = 2
var2 = '5'
puts var1.to_s + var2
25
Подобным же образом to_i возвращает целочисленную версию значения объекта, а to_f возвращает плавающую версию. Давайте взглянем на то, что эти три метода делают (и что не делают) чуть более пристально:
var1 = 2
var2 = '5'
puts var1.to_s + var2
puts var1 + var2.to_i
25
7
Обратите внимание, что даже после того, как мы получили строковую версию var1, вызвав to_s, переменная var1 продолжает постоянно указывать на 2, и никогда — на '2'. До тех пор, пока мы явно не переприсвоим значение var1 (что требует применение знака =), она будет указывать на 2 до конца работы программы.