全体レイアウトを作る

先ほど生成されたビューを見てみると、本当にユーザ名しか書かれておらず、〜などの基本的な構造すら入っていないのが分かります。しかし、これからビューを増やしていくことを考えると、いちいち全てのビューに同じことを書いていくのは大変です。

そこで、Railsではlayoutという仕組みを用意しています。詳しくはこことかここ 辺りに。


今回は、アプリケーション全体に適用するレイアウトを書いてみます。場所は app/views/layouts/application.rhtml 。
スタイルシートとか、共通で使うJavaScriptもここに書くと良いでしょう。例えば

<html>
<head>
  <title><%= @title %></title>
  <%= stylesheet_link_tag('monologue') %>
</head>
<body>
<div id="subpage">
<%= link_to image_tag("monologue.png", :align => 'left', :id => 'logo'), "/" %>
<br style="clear:both">

<%= @content_for_layout %>

</div>
</body>
</html>  

とか。


ちなみに <%= 〜 %> や <% 〜 %> はerbの表記です。〜にはrubyの命令を埋め込めます。前者は結果をHTML内に出力し、後者は出力しません。後者はループやif文などの制御構造を書くためにも使えます。


image_tag はimgタグの生成。public/stylesheets/images/ 内においたファイルへのimgタグを生成します。
stylesheet_link_tag は、public/stylesheets/ においたcssファイルへのlinkタグを生成するメソッドです。
JavaScriptの場合も、javascript_include_tag メソッドで、 public/javascripts/ 内のファイルを呼び出すscriptタグが生成できます。


今回はロゴの画像を配置するとともに、monologue.cssという全体に適用するスタイルシートへのリンクを張っています。