单行 if-else 语句期望 keyword_do
Single-line if-else statement expecting keyword_do
长期以来我一直在使用单行if-else语句,最近我反复出现这个错误:
registrations_controller.rb:88: syntax error, unexpected tSYMBEG, expecting keyword_do or '{' or '('
这是我在当前示例中使用的语法,我已经双重、三次和四次检查语法是否正确:
resource.errors.any? ? render :new : do_something_else!
我检查了四周,似乎找不到任何更改或类似问题。奇怪的是,当我 运行
foo = [1,2,3]
foo.any? ? 'bar' : 'baz'
在我的终端中,我没有收到任何错误。我很确定我已经在这里复制了我在所有相关方面尝试做的事情,但似乎无法找到关于为什么会发生这种情况的提示。我想 render
可能有问题,但我不认为是这种情况,因为我在尝试将 render 'new'
与字符串而不是符号一起使用时遇到了类似的错误。
您需要将 render
参数括在括号中。
resource.errors.any? ? render(:new) : do_something_else!
否则,解析器将难以理解参数从哪里开始。
长期以来我一直在使用单行if-else语句,最近我反复出现这个错误:
registrations_controller.rb:88: syntax error, unexpected tSYMBEG, expecting keyword_do or '{' or '('
这是我在当前示例中使用的语法,我已经双重、三次和四次检查语法是否正确:
resource.errors.any? ? render :new : do_something_else!
我检查了四周,似乎找不到任何更改或类似问题。奇怪的是,当我 运行
foo = [1,2,3]
foo.any? ? 'bar' : 'baz'
在我的终端中,我没有收到任何错误。我很确定我已经在这里复制了我在所有相关方面尝试做的事情,但似乎无法找到关于为什么会发生这种情况的提示。我想 render
可能有问题,但我不认为是这种情况,因为我在尝试将 render 'new'
与字符串而不是符号一起使用时遇到了类似的错误。
您需要将 render
参数括在括号中。
resource.errors.any? ? render(:new) : do_something_else!
否则,解析器将难以理解参数从哪里开始。