Недавно я столкнулся с странностью, глядя на некоторый код 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
. Я не уверен, почему он ожидал бы }
, и почему использование скобок изменило бы это.
Эй, что с нисходящим? Этот ответ правильный. – acobster