三項演算子
三項演算子(ternary operator)とは、if文を簡略化する書き方の一つ。
その意味合いは、ternary(三つの要素からなる)という言葉とoperator(演算子)という言葉を組み合わせたもの。
具体的には、下記のように「?」と「:」という演算子を使って、if, else, end という三つの要素を一行で書けるというもの。
- if文による書き方
if name=="Taro"
"Yes, I am Taro"
else
"No, I am #{name}"
end
- 三項演算子による書き方
name=="Taro" ? "Yes, I am Taro" : "No, I am #{name}"
ページタイトルヘルパーへの応用
この書き方を利用して、ページタイトルヘルパーもシンプルに書ける。
(page_titleは provide(:title, 'タイトル名')
でページごとに与える。)
- 変更前
application_helper.rb
module ApplicationHelper
BASE_TITLE = "HOGE".freeze
def full_title(page_title)
if page_title.blank?
BASE_TITLE
else
"#{page_title} - #{BASE_TITLE}"
end
end
end
- 変更後
application_helper.rb
module ApplicationHelper
BASE_TITLE = "HOGE".freeze
def full_title(page_title)
page_title.blank? ? BASE_TITLE : "#{page_title} - #{BASE_TITLE}"
end
end