Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Ruby中,“为什么?”;或<;声明>&引用;必须和第一个条件在同一条线上?_Ruby_Compilation - Fatal编程技术网

在Ruby中,“为什么?”;或<;声明>&引用;必须和第一个条件在同一条线上?

在Ruby中,“为什么?”;或<;声明>&引用;必须和第一个条件在同一条线上?,ruby,compilation,Ruby,Compilation,为什么“或条件”必须与第一个条件在同一行?在整个语句周围使用括号也不起作用。下面的工作正如预期的那样,可以说是更好的 @organization = Organization.where(:slug => subdomain).first or raise ActiveRecord::RecordNotFound SyntaxError (/Users/bmckim/Workspace/telvue/ion/app/controllers/application_controlle

为什么“或条件”必须与第一个条件在同一行?在整个语句周围使用括号也不起作用。下面的工作正如预期的那样,可以说是更好的

@organization = Organization.where(:slug => subdomain).first 
  or raise ActiveRecord::RecordNotFound

SyntaxError (/Users/bmckim/Workspace/telvue/ion/app/controllers/application_controller.rb:36: syntax error, unexpected keyword_or, expecting keyword_end
  or raise ActiveRecord::RecordNotFound
    ^):

@organization=organization.where(:slug=>subdomain)。首先,
本身就是一个完整的表达式,所以解析器认为这就是您的意思。如果Ruby需要表达式终止符(分号或其他什么),那么将
放在第二行就行了。

值得注意的是,您可以在第一行末尾抛出一个“\”,向解析器发出信号,表示您还没有完成这一行。
@organization = Organization.where(:slug => subdomain).first or 
  raise ActiveRecord::RecordNotFound