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、2 行目に the を置くと機能します。

于 2012-10-28T19:55:30.197 に答える