
Rubyの代入演算子についてです!
Rubyの代入演算子とは?
Rubyの代入演算子とは
hoge ||= 1
などのことです。
これは
hoge = hoge || 1
と同じ意味になります。
hogeがnilかfalseの場合に限り1を代入するという意味になります。
これは変数にデフォルトの値を与えるruby定番の文法です。
Railsでも頻出!
Railsでもログインしているユーザーか判定するcurrent_user
メソッドなどを定義する時にRubyの自己代入を使います。
def current_user @current_user ||= User.find_by(id: session[:user_id]) end
以下のようにfindを使って定義することもできます。
def current_user @current_user ||= User.find(session[:user_id]) end
findはIDを元に検索をすることと、見つからなかった場合にActiveRecord:NotFoundが投げられます。
find_byは検索条件に基づいて最初の1件をとってきます。
見つからなかった場合はnilを返します。
見つからないことを前提にする場合はfind_byを使ったほうがいいようなので、current_userを定義するならfind_byを使ったほうがよさそうですね。
Rubyの文法を覚えるなら

- 作者: 高橋征義,後藤裕蔵,まつもとゆきひろ
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2016/02/26
- メディア: 単行本
- この商品を含むブログ (1件) を見る
コメントを残す