nilガード
book || = Book.first
上記のコードの || = が nilガードと呼ばれるイディオムだ。よく見るし、体で覚えてしまっているけれど、もう一度頭で理解しておく。
これは省略せずに書くと、こうなる。
book || book = Book.first
book変数にnil / false以外が格納されていれば、そこで式が評価されて、book変数の値を返す。もし、book変数がnil / falseの場合は、book = Book.firstが実行される。なので、こうしておけば、book変数がないときのデフォルト値を設定することができる。便利だ。変数がnil or falseならデフォルト値を右側で用意している、と考えれば良い。
(了)