Sin ellos no son el mismo es una cadena que el otro es un símbolo
Se debe utilizar la segunda forma, un símbolo es algo que se usa para representar algo que de otro modo ser una cadena. Es una manera de tener nombres descriptivos de forma eficiente y, al mismo tiempo, de guardar el espacio que usaría para generar una cadena varias veces.
Esto significa que no crea una nueva instancia cada vez que se refiere al símbolo como lo haría con una cadena. El símbolo es simplemente una mejor manera de representar el valor que está describiendo.
Para completar, debo mencionar que un símbolo puede convertirse trivialmente en una cadena si necesita una representación más adelante.
si quiere leer más hay una larga publicación en el blog just here que explica bien los símbolos de rubí. Basta decir que son una optomización.
El problema básico es que no desea convertir cadenas almacenadas en símbolos, ya que los símbolos no se recogen como basura. – Reactormonk
una cosa que noté hoy. Mis valores de sesión son accesibles por cadenas, no por las teclas de símbolos. Mientras que los params también funcionan con símbolos. Estoy usando ruby 1.9.2 y rails 3.2.13 –
El enlace 'string vs symbol' está roto: / – brandaemon