provideとyieldについて(railsチュートリアル第3章)
yieldの一つの使い方
htmlへviewsの各内容を反映させる
application.html.erb は、アプリケーション全体で使用されるデフォルトのレイアウト。
application.html.erb
<!DOCTYPE html>
<html>
<head>
中略
</head>
<body>
<%= yield %>
</body>
</html>
<%= yield %と記述された箇所に各ページの内容として別途作成されたhtmlファイルの内容を持ってくるわけである。
home.html.erb
<h1>サンプルアプリ</h1>
<p>これはサンプルアプリです</p>
この場合<%= yield %の中にhome.html.erbの記述内容が反映される。
他ファイルの一部分を参照する場合
application.html.erb
<!DOCTYPE html>
<html>
<head>
<title>アプリ名 | <%= yield(:title) %></title>
中略
</head>
後略
home.html.erb
<% provide(:title, 'ホーム') %>
<h1>サンプルアプリ</h1>
<p>これはサンプルアプリです</p>
provideのtitleが呼び出されたらtitleとラベルの書かれた引き出しを開け”home”という値を
yieldのtitle:に渡し結果
アプリ名 | home
と表示させることが出来る。
参考文献