人気ブログランキング | 話題のタグを見る

RoR app/views/layouts

app/views/layouts の中を見るのを忘れていた。
~rails/demo$ ls app/views/layouts/
users.html.erb

中には users.html.erb というテンプレートが一つだけ入っていた。Rails 2.x のテンプレートは erb ファイルで統一されているのだろうか。その内容はこれ。

<!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>Users: <%= controller.action_name %></title>
  <%= stylesheet_link_tag 'scaffold' %>
</head>
<body>

<p style="color: green"><%= flash[:notice] %></p>

<%= yield  %>

</body>
</html>

HTML文書の外側の部分が置いてあった。body のところに <%= yield  %> が置いてあるので、ブロックで渡された本文をここで実行させるのだろう。本文を関数として受けとるので、本文のカスタマイズが簡単にできて便利だ。

スタイルシートは直接に指示するのではなく、stylesheet_link_tag というメソッドへ引数として渡すように抽象化されている。

メタプログラム(こんな用語の使い方をしてよいのかどうか知らないが)のオンパレード。

meta タグでは charset=UTF-8 になっている。Ubuntu では、scaffold で作ったアプリケーションに設定もせずに日本語が使えたので不思議に思っていたのだが、scaffold の設定がすでに UTF-8 になっていたのだろう。gem install sqlite3-ruby でインストールされた SQlite3 もUTF-8を受け付けるようになっていた。しかし、Windows では日本語入力がうまくいかず苦戦している。
by tnomura9 | 2008-10-15 07:50 | Ruby | Comments(0)
<< RoR config/data... RoR Rakefile >>