$ irb
irb(main):001:0> a = "Hello"
=> "Hello"
irb(main):002:0> b = "world"
=> "world"
irb(main):003:0> puts "${a}, ${b}!" # Doesn't work.
${a}, ${b}!
=> nil
irb(main):004:0> puts "#{a}, #{b}!" # Works fine.
Hello, world!
=> nil
irb(main):005:0> puts '#{a}, #{b}!' # Doesn't work.
#{a}, #{b}!
=> nil
Вы хотели #{...}
, а не ${...}
Я верю. Кроме того, вы не получаете подстановок внутри строк в одинарных кавычках, только в двойных кавычках (или эквивалентах - в Ruby существует множество способов разграничить строки).