IRB と Rails コンソールはどちらも、必要な場合にのみシンボルを引用符でエスケープする優れた方法でシンボルを出力します。いくつかの例:
1.9.3p194 :001 > "@test".to_sym
=> :@test
1.9.3p194 :002 > "@Test".to_sym
=> :@Test
1.9.3p194 :003 > "@123".to_sym
=> :"@123"
1.9.3p194 :004 > "@@_test".to_sym
=> :@@_test
1.9.3p194 :005 > "test?".to_sym
=> :test?
1.9.3p194 :006 > "test!".to_sym
=> :test!
1.9.3p194 :007 > "_test!".to_sym
=> :_test!
1.9.3p194 :008 > "_test?".to_sym
=> :_test?
1.9.3p194 :009 > "A!".to_sym
=> :"A!"
1.9.3p194 :010 > "@a!".to_sym
=> :"@a!"
これを自分で行うには、次のようにします。
puts "This is valid code: #{escape_symbol(some_symbol)}"