Good question! In ruby, a method +@determines the behavior of a unary + operator. In other words, it determines what happens when you have a type expression +someSymbol.
So, in this case, he sees part of your expression, +" #{base} "and tries to apply the unary + method to a string that does not exist.
Try adding a space between +and at the beginning of your line.
, .
i = 2
i.to_s +"foo"
"2" +"foo"
, ? i.to_s +"foo" i.to_s(+"foo"). , +, .
, :
i.to_s() +" #{base} " + i.to_s
"#{i} #{base} #{i}"