TodoList: レイアウト ― 2007年01月15日 12時17分10秒
app/views 以下に各コントローラに対してのビューが生成されている。rhtml ファイルは body の中身を作っているようだが、head などは別のところで生成されているようだ。
少し調べたら、app/views/layouts から生成されているのを突き止めた。ここで、todo.rhtml など、コントローラ名を含む rhtml ファイルがあり、各コントローラに対して呼ばれるようだ。コントローラ名.rthml が無く、application.rhtml があると application.rhtml が読み込まれる。
% ls app/views/layouts
organization.rhtml
todo.rhtml
と二つのファイルがあったが、どかして application.rhtml を作った。
% cat application.rhtml
<html>
<head>
<title>Application: <%= controller.action_name %></title>
<%= stylesheet_link_tag 'scaffold' %>
</head>
<body>
<p>
<%= link_to 'Home',
{:controller => 'user', :action => 'home'} %>
<%= link_if_authorized 'Todo',
{:controller => 'todo', :action => 'list'} %>
<%= link_if_authorized 'Organizations',
{:controller => 'organization', :action => 'list'} %>
<p style="color: green"><%= flash[:notice] %></p>
<%= yield %>
</body>
</html>
もし、ログインしていたら、Todo と Organization の list ページにいけるようにリンクを作成。user_engine を利用しているので、link_if_authorized を使い、リンクを表示するべきかを判定する。
データを更新したときに表示される緑色の文字は、このページで出力されていたのも判明した。
最近のコメント