2012-10-28 16 views
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 
    ^): 

爲什麼「或條件」必須與第一個條件位於同一行?在整個語句周圍使用括號也不起作用。以下工作如預期,無論如何可以說是更好。在Ruby中,爲什麼「或<statement>」必須與第一個條件位於同一行?

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

回答

2

@organization = Organization.where(:slug => subdomain).first是一個完整的表達式,所以解析器認爲這就是你的意思。如果Ruby需要表達式終止符(分號或其他),則將or放在第二行即可。

+4

值得注意的是,你可以在第一行的末尾加一個'\\'來表示解析器還沒有完成這一行。 –

相關問題