Rubyの改行ルールを確認しておく。
・Rubyでは、改行を式の終わりと考えるので、;などをつける必要がない代わりに、複数行に渡って式を記述することができない。
・対処法は二つある。一つは、「\(バックスラッシュ)」を文末につけた上で改行する。もう一つは、明らかに文が続いているとRubyが認識してくれるような改行を行う。
以下、今回起こったエラー。
sample.rb
if A &&
B
(処理)
end
が、正しく動作するときと、しない時がある。Rails内で起こった。
この改行は、二つ目の「明らかに文章が続く〜」に該当するもので、Rubyの改行規則に従っていると思っていたが、うまくいかなかった。
以下参考。
http://thinca.hatenablog.com/entry/20090131/1233334281
明らかな改行でない場合は、改行は「;」と等価になって評価される。
&&での改行は「明らかな改行」に該当するはずだが、今回は動作が不安定に。いずれの場合も「\」を入れておく。