content_forでタイトルを動的に

タイトル名をページ遷移するごとに変えたいときに、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で日本語に変換してます。

 

参考ページ

railsguides.jp

 

最後に

Railsガイドを見ると、まだまだ使い方はたくさんあるみたいです。

ブログ内容に不備などありましたら、コメントいただけると幸いです。

最後まで読んでいただきありがとうございます。