動的なタイトル表示について

どうもどハマりエンジニアです。

 

本日は動的なタイトル表示について書いていきます。

 

 

content_forメソッドとは

content_forメソッドは、Railsにデフォルトで用意されているもので、画面毎に異なる内容を呼び出したい場合使う。

 

<application_helper.rb>

module ApplicationHelper
def page_title(page_title = '')
base_title = 'RUNTEQ BOARD APP'

page_title.empty? ? base_title : page_title + ' | ' + base_title
end
end

 

三項演算子を使って、空だった場合は「サイト名」、タイトルがある場合は「タイトル | サイト名」のように表示される。

<application.html.erb>

<title><%= page_title(yield :title ) %></title>

デフォルトのタイトルは、サイト名だけを表示するようにしている。

 

<new.html.erb>

<% content_for(:title, t('.title')) %>

タイトルは、I18nで日本語に変換している。そのまま'タイトル'のように記述しても問題ない。

 

 

page_title.empty? ? base_title : page_title + ' | ' + base_title

上記のように条件式(.empty?) ? trueの処理 : falseの処理と言う記載を使って1行で済ませている。

コード量を減らせるため三項演算子はよく使われますが、分かりづらいと言う方は一旦下の形式で記載して理解しても大丈夫。

if page_title.empty?
  base_title
else
  page_title + " | " + base_title
end

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