「||=」のわかりやすい説明
Railstutorialの第8章で、
def current_user remember_token = User.encrypt(cookies[:remember_token]) @current_user ||= User.find_by(remember_token: remember_token) end
という記述が出てくる。
これはremember_tokenがあった場合、
@current_userというインスタンス変数に入れてあげる、と。
この「||=」
「||」自体はどちらかの条件が成立すればtrue。
これを理解するのに、いいコラムがあったそのまま引用。
>> @user => nil >> @user = @user || "the user" => "the user" >> @user = @user || "another user" => "the user"
最後の@user || "another user"の場合は、
最初の1番目の@userが評価されるので、
コンソールに出力されるのは"the user"だということ。