Warum sind in Ruby manchmal Klammern erforderlich?

Ich bin kürzlich auf eine Seltsamkeit gestoßen, als ich mir einen Ruby-Code aus dem @ angesehen habRails docs.

it @Ruby können Sie Argumente wie die folgenden übergeben:

redirect_to post_url(@post), alert: "Watch it, mister!"
redirect_to({ action: 'atom' }, alert: "Something serious happened")

Aber dieser zweite Fall erschien mir merkwürdig. Es sieht so aus, als ob Sie in der Lage sein sollten, es so zu bestehen:

redirect_to { action: 'atom' }, alert: "Something serious happened"

Und es hätte die gleiche Bedeutung mit oder ohne Klammer. Aber stattdessen bekommst du:

syntax error, unexpected ':', expecting '}'

Bezug auf den Doppelpunkt nachaction. Ich bin nicht sicher, warum es @ erwarten wür} dort, und warum die Verwendung von Klammern das ändern würde.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage