🐥

Rails if elseの色々な書き方

2022/01/15に公開

=||

  • articleがnilの場合は右辺を代入する
article ||= medium.article

参考
https://qiita.com/ngron/items/4d3ca9827d1969fccd60
https://qiita.com/wann/items/3f4dd3f44a6c6ff8e037

? : 三項演算子

  • ?より前の条件がtrueの場合はarticle, falseの場合はmedium.articleを表示する
article = article ? article : medium.article

早期return

  • articleがtrueもしくはnilでない場合、後続のmedium.articleは呼ばれない
  • 関数内でif elseをやる場合はよく使うやつ。

# NG
def get_article
   if article.present?
      medium.article
   else 
      return nil
   end
end

# OK
def get_article
   return unless article.present?
   medium.article
end

ネストさせないifの書き方

  • ifが2つ続いてネストされる場合、同じ条件式で処理する

# NG ネストが深くなる
if @post.present?
   if @article.present?
      # 処理
   
# OK ネストが浅くなる

if @post.present? && @aritle.present?
   # 処理

Discussion