yieldcontent_for の使い方の紹介。

Railsを使っていてありがちなのが、layouts/application.rb で共通レイアウトテンプレートを使っているときに、画面ごとに <head> の中身を変えたいという事。

そんなときは yieldcontent_for を使えばOK。

layouts/application.html.erb

<head>
  (- - snip - -)
  <%= yield :head %>
</head>

foos/bar.html.erb

<% content_for :head do %>
  <%= javascript_include_tag 'iepngfix' %>
<% end %>

こんな感じに、画面ごとに <head> に追加したい項目を書くことができます。

また、 content_for は、何度呼び出してもOKです。呼び出した順に追記されていきます。

<head> の中身のほかにも、サイドバー等の共通レイアウトにも使えますね。

posted by genki genki on Wed 14 Nov 2007 at 14:46 with 0 comments