#はじめに
今回はRailsにおけるcontent_for
とyield
の使い方について解説します!
コンテンツを1箇所に保存し、他のビューで使えるようにするためのものです!
ぜひご覧ください
#使い方
content_forを説明する前に…
まず例として、titleを各ページで変更しない場合について確認します。以下のようにapplication.html
に書けば良いですね。
<title>タイトルだよ</title>
そうすると以下のようにタイトルが表示されるはずです。
この場合はapplication.html
に書いてあるのでどのページでもタイトルが"タイトルだよ"と表示されます。
しかし、作成するサイトによっては、各ページごとにタイトルを変えたい場合がありますよね。
例えば映画のレビューサイトを作成するとしたら、トップページのタイトルには"サイト名"をつけて、
各映画の詳細ページのサイトにはそれぞれの映画の名前を入れたサイト名をつける、等。
そういった場合application.html
とそれぞれのhtmlファイルに以下のように記載します。
<title><%= yield(:title) %></title>
<% content_for(:title, 'てすと') %>
このように書くことで、test.htmlがブラウザに表示された際にタイトルが"てすと"に変わります。
そしてデフォルト値を設定することもできます!その場合は以下のようにします。
<title><%= content_for?(:title) ? yield(:title) : ”でふぉると"%></title>
この例だと、content_forでtitleが設定されていないhtmlファイルの場合は、タイトルが"でふぉると"と表示されます。
また、複数行にわたるような内容をcontent_forを使用して表示させる場合には、以下のようにします。
<%= yield(:infomation) %>
<% content_for :information do %>
<ul>
<li>最新のお知らせ</li>
</ul>
<% end %>
このようにcontent_forをdo-endで記述し、ブロック内に呼び出したい内容を記載すれば良いです。
#さいごに
contetn_forとyeildを使用することで特定の場所への記述がとてもわかりやすくなります。
ぜひ活用してみてください!
最後までご覧いただきありがとうございました