¿Por qué a veces se requieren paréntesis en Ruby?
Recientemente me encontré con una rareza mientras miraba un código Ruby delRieles docs.
Ruby te permite pasar argumentos como estos ejemplos:
redirect_to post_url(@post), alert: "Watch it, mister!"
redirect_to({ action: 'atom' }, alert: "Something serious happened")
Pero ese segundo caso me pareció extraño. Parece que deberías poder pasarlo así:
redirect_to { action: 'atom' }, alert: "Something serious happened"
Y tendría el mismo significado con o sin paréntesis. Pero en cambio obtienes:
syntax error, unexpected ':', expecting '}'
Refiriéndose al colon despuésaction
. No estoy seguro de por qué estaría esperando}
allí, y por qué usar paréntesis cambiaría eso.