14th Wed
共通のテンプレートを使って画面ごとに異なる内容を流し込む
yield と content_for の使い方の紹介。
Railsを使っていてありがちなのが、layouts/application.rb で共通レイアウトテンプレートを使っているときに、画面ごとに <head> の中身を変えたいという事。
そんなときは yield と content_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 on Wed 14 Nov 2007 at 14:46 with 0 comments