Railscasts - Pretty Page Title
viewに1行書くだけで、タイトルとh1要素を同じように出力できる。
なるほどねと思ったのでメモ。
まぁ、Four Days on Railsみたいに
@(インスタンス)変数で記述する方法でもシンプルでいいんだけど
作者曰く、よりcleanになると。
出力結果
こんな感じ <title>TestPage - Listing products</title> <h1>Listing products</h1>
書き方
各view
title/h1要素の代わりに下記のように記載。
<% title "タイトルh1要素名" %>
layout
application.html.erbを作成(scaffoldで作成されたerbをコピー)。
titleとh1を下記のように編集。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8" /> <title>TestPage - <%= yield(:title) || "This is TestPage" %></title> <%= stylesheet_link_tag 'pagination' %> </head> <body> <p style="color: green"><%= flash[:notice] %></p> <h1><%= yield(:title) %></h1> <%= yield %> </body> </html>
application_helper.rb
viewで使うtitleメソッドを作成
def title(page_title) content_for(:title) { page_title } end