Ruby 4.1 リファレンスマニュアル

instance method Symbol#id2name

id2name -> String[permalink][rdoc][edit]
to_s -> String
() → String

シンボルに対応する文字列を返します。

逆に、文字列に対応するシンボルを得るには String#intern を使います。

p :foo.id2name  # => "foo"
p :foo.id2name.intern == :foo  # => true

Ruby 4.1 から、返り値の文字列は freeze されています。毎回同じオブジェクトが返され、Symbol#name の返り値と同一のオブジェクトです。破壊的に変更しようとすると FrozenError が発生します。変更可能な文字列が必要なときは、dup や + で複製してください。

s = :foo.to_s
p s.frozen?           # => true
p s.equal?(:foo.to_s) # => true
p s.equal?(:foo.name) # => true
p s.dup.frozen?       # => false
s << "bar"            # ~> FrozenError

[SEE_ALSO] String#intern

[SEE_ALSO] Symbol#name