0
@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).first or 
  raise ActiveRecord::RecordNotFound
4

1 回答 1

2

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

于 2012-10-28T19:55:30.197 回答