##htmlへviewsの各内容を引っ張ってくるもの。
レイアウトファイルには全体で共有するhtml.erbがあり、rails newで自動生成されるファイルの、app/views/layouts/application.html.erbがそれにあたる。
このbodyタグ内に<%= yield %>と入っており、ここに各ページの内容として別途作成されたhtmlファイルの内容を持ってくるわけである。
(そのためには rails g で作成する app/controllers/アプリ名_controller.rb と config/routes.rb で各ファイルをルーティングしてあげないといけないが)
具体的には、
<!DOCTYPE html>
<html>
<head>
中略
</head>
<body>
<%= yield %>
</body>
</html>
・・・とあるところへ、home.html.erbがルーティングされていてその内容が以下だったとして。
<h1>サンプルアプリ</h1>
<p>これはサンプルアプリです</p>
かなりシンプルな内容ではあるが、サーバーを起動し、urlに「/アプリ名/home」を追記した先では上記二文の文字列が表示されるようになる。
また、titleタグのみに影響させることも可能で、
<!DOCTYPE html>
<html>
<head>
<title>アプリ名 | <%= yield(:title) %></title>
中略
</head>
後略
と、タイトルにyieldに(:title)をつけてあげて、今度はさっきのhome.html.erb側に以下・・・
<% provide(:title, 'ホーム') %>
<h1>サンプルアプリ</h1>
<p>これはサンプルアプリです</p>
・・・と、最初に一行追加してあげます。
すると、:titleに文字列「ホーム」が代入され、それがyieldによって持って行かれて、またhomeを開いてあげるとタイトルの横に「ホーム」と付くようになる、と。