Railsのcontent_forが便利

Railsでページ毎にmetaタグのキーワードなどを変更したい時にcontent_forメソッド使うとすごく便利で簡単です。(OGPのメタタグの設定とか)

OGPのメタタグの設定を例にやってみます。
OGPとは facebookとかでよく使われてるアレですね。

コンテンツページ(ページ毎に変えたいところ)
(※ @landingにページごとの情報が格納されているとします)

<% content_for :ogp do %>
  <meta property="og:title" content="<%= @landing.title %>" />
  <meta property="og:type" content="article" />
  <meta property="og:url" content="<%= @landing.url %>" />
  <meta property="og:image" content="<%= @landing.image %>" />
<% end %>

共通レイアウトのところ(headタグの中に)
(app/views/layouts/application.rb)

<%= yield :ogp %>

これだけ!

他にも

  • コンテンツ毎にタイトル変えたいとか
  • 特定のページになんか表示したいときとか

いろいろ使えそう。
こういう時ほんとRubyのブロック便利やなぁーと実感。