動的なタイトル表示について
どうもどハマりエンジニアです。
本日は動的なタイトル表示について書いていきます。
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
最後まで読んでいただきありがとうございます。