タイトル名をページ遷移するごとに変えたいときに、content_forを使用することで簡単に変えることができます。
勉強した内容をアウトプットしていきます。
content_forメソッドについて
content_forはRailsに用意されているメソッドです。content_forを用いて、タイトルを動的に変更します。
使い方をソースコードで確認
application_helper.rb
module ApplicationHelper
def page_title(page_title = '')
base_title = 'title'
page_title.empty? ? base_title : page_title + ' | ' + base_title
end
end
三項演算子を使って、page_titleが空だった場合はbase_titleのみの表示。
page_titleに何か記載されていたら、page_title | base_titleと表示されます。
条件式 ? 真 : 偽の構文で、条件式の判定メソッドの終わりがempty?という?で終わるメソッドになっているため、1行に?が2つある形になります。
application.html.erb
<title><%= page_title(yield :title ) %></title>
デフォルトのタイトルを作成。
コンテンツを名前付きのyieldとしてレンダリングするには、content_forメソッドを使用します。
<h1><% content_for(:title, t('.title')) %></h1>sp
それぞれのページのタイトルをこのように記載することで、コンテンツを名前付きのyieldブロックとしてレイアウトに挿入できます。
※タイトルは、I18nで日本語に変換してます。
参考ページ
最後に
Railsガイドを見ると、まだまだ使い方はたくさんあるみたいです。
ブログ内容に不備などありましたら、コメントいただけると幸いです。
最後まで読んでいただきありがとうございます。