サイトのタイトルを動的に表示させる
サイトのタイトルを各ページ毎に変えたいときの手順です。
・ヘルパーの作成
・共通レイアウトに埋め込み
・各viewページで呼び出し
の流れでやっていきます。
ヘルパーの作成
module ApplicationHelper def page_title(page_title = '') base_title = 'hogehoge' if page_title.empty? base_title else page_title + ' | ' + base_title end # page_title.empty? ? base_title : page_title + " | " + base_title # 条件式 ? trueの処理 : falseの処理 #三項演算子で書くとこう。コード量を減らすためよく使われる。 end end
共通レイアウトに埋め込み
<html> <head> <title><%= page_title(yield(:title)) %></title>
各viewページで呼び出し
<% content_for :title, 'fuga' %>
これで各viewページのcontent_forで与えた文字列をpage_titleメソッドに渡して
fuga | hogehoge
というタイトルを付けることができる。