どうも、Rails学習2ヶ月とちょっとのChihaと申します。
タイトルの通りです。スクールでのチーム開発にて触る機会があったので備忘録。
開発環境
- Ruby on Rails 5.2.2
- Ruby 2.5.1
- haml-rails
動的タイトル表示とは?
そもそもの話、ここで言うタイトルとはブラウザのタブの所に表示される文字のことです。
それを、
こう言う感じで、ページの目的によって表示を変えるやつを実装しました。
ブラウザのタイトルは、views/layouts/application.html.erb(僕の環境ではapplication.html.haml)に書かれたhead内のtitleタグの中身を参照して表示されます。
!!!
%html
%head
%meta{content: "text/html; charset=UTF-8", "http-equiv": "Content-Type"}/
%title FreemarketSample58a
このtitleタグの中身は
$ rails new アプリケーション名
をした時のタイトルがそのまま書かれてます。
このままだと全てのページがFreemarketSample58aというタイトルになってしまいます。
そこで、全ページ同じ表記だと味気無いので変更しようと思ったわけです。
(というか作成してるアプリの見本が動的タイトル表示だった)
今回はcontent_forを使って実装しました。
(ほとんどこちらの記事そのままです。)
https://techracho.bpsinc.jp/hachi8833/2018_05_15/55812
/application.html.haml(または何かしらのレイアウトファイル)
!!!
%html
%head
%meta{content: "text/html; charset=UTF-8", "http-equiv": "Content-Type"}/
%title
= content_for?(:html_title) ? yield(:html_title) : "FreemarketSample58a"
今回はcontent_forで:html_titleが飛んできていた場合、そのまま表示させてあげる設定にしました。
ビューファイルには、適当な場所に
/show.html.haml(何らかのビューファイル)
- content_for(:html_title) {'表示させたい内容'}
としてあげると表示できます。僕は他の記述と混ざらないように1行目に置きました。
最初はタイトルの数だけレイアウト置くなどというトンデモコーディングしてました。流石にメンターに注意されました。反省。
ということで、これで無事に動的タイトル表示が実装できました。
最後に
引き続き細々と記事書ける気力があった時に書いていこうかなと思います。
まだまだ学習2ヶ月ほどのド初心者ですので、より良いコード、間違った点などがあればご教授頂けると幸いです。
参考記事