読者です 読者をやめる 読者になる 読者になる

Rubyの ||= (自己代入演算子)

Ruby

Railsレシピブックを見ていたら、以下のようなコードが掲載されていました。

@user ||= User.find(session[:user_id])
=って時々見かけるけど意味がわかってなかったので調べました。

Rubyで使われる記号の意味(正規表現の複雑な記号は除く)によると

  • 「||」演算子の自己代入演算子。a が nil か false なら a に xxx を代入する、という意味になります。

つまり「@user ||= User.find(session[:user_id])」は「@userがnilかfalseだったら、@userにUser.find(session[:user_id])を代入する」という意味か。

Railsレシピブック 183の技

Railsレシピブック 183の技