Railsのlayoutで基本、一緒なんだけど
「ココとココのページだけは特定のjavascript読み込みたい」
とか
「SEOのためにtitle, meta description, meta keywordsをページ毎に細かく分けたい」
とかいう場合にControllerで@titleに文字を入れておくとかいうのは非っ常に気持ち悪い。
そういう時、layoutには
<html>
<head>
<%= yield :header %>
</head>
(略)
と書いておいて、それぞれのページでは
<% content_for :header do %>
<%= content_tag :title, "タイトル" %>
<% end %>
とやると、
<html>
<head>
<title>タイトル</title>
</head>
(略)
となる。Controllerが綺麗になってうれしい。やっぱりHTMLはViewに書きたい。
javascriptはlayoutの最後の行に同じく yield :footer_js とか作って最後に読んだ方がいいかも。
Railsレシピブックに載ってました。どーってことないアレだけど、183個のレシピのなかでこれが一番うれしかった。
|