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個のレシピのなかでこれが一番うれしかった。

Railsレシピブック 183の技
  • Railsレシピブック 183の技
  • ソフトバンククリエイティブ(2008-05-31)
  • ソフトバンククリエイティブ
  • 定価:¥ 2,940
  • 新品価格:¥ 2,940
  • 中古価格:¥ 2,540
  • ASIN:4797336625

Comments


Option