Почему в Ruby иногда требуются скобки?
Недавно я столкнулся со странностью, глядя на некоторый код Ruby изRails Docs.
Ruby позволяет передавать аргументы, подобные этим:
redirect_to post_url(@post), alert: "Watch it, mister!"
redirect_to({ action: 'atom' }, alert: "Something serious happened")
Но этот второй случай показался мне странным. Похоже, что вы должны быть в состоянии передать это так:
redirect_to { action: 'atom' }, alert: "Something serious happened"
И это будет иметь то же значение с или без скобок. Но вместо этого вы получите:
syntax error, unexpected ':', expecting '}'
Ссылаясь на двоеточие послеaction
, Я не уверен, почему это было бы ожидать}
и почему использование круглых скобок изменит это.