They seem to be aliases for the same thing. From the documentation you can see that the sample code of intern
uses to_sym
:
intern → symbol
Returns the Symbol corresponding to str, creating the symbol if it did
not previously exist. SeeSymbol#id2name
."Koala".intern #=> :Koala s="cat".to_sym #=> :cat s == :cat #=> true s="@cat".to_sym #=> :@cat s == :@cat #=> true
This can also be used to create symbols that cannot be represented
using the :xxx notation.'cat and dog'.to_sym #=> :"cat and dog"