Web设计的Ruby on Rails
第3章 布局和局部模板
这章的主题是模板分割方法、布局和局部模板。
布局就是包含主要模板的模板。请看下面 2 个 RHTML 模板。
<html> <head> <title><%= @title %></title> </head> <body> <%= yield :layout %> </body> </head>
<h1><%= @title %></h1> <h2><%= @chapter_heading %></h2> <% @paragraphs.times do |p| -%> <p><%= p %></p> <% end -%>
上面的是布局,下面的是主要模板。请注意布局也是模板的一种。对应动作如下,想想会产生怎样的 HTML 代码吧。
@title = '个人信息保护方针' @chapter_heading = '基本方针' @paragraphs = [ '本公司遵守个人信息保护法以及其他相关法律、法规。', '本公司在向顾客公示的利用目的范围内使用个人信息。', '本公司致力于防止个人信息的非法查询。' ]
结果如下。
<html> <head> <title>个人信息保护方针</title> </head> <body> <h1>个人信息保护方针</h1> <h2>基本方针</h2> <p>本公司遵守个人信息保护法以及其他相关法律、法规。</p> <p>本公司在向顾客公示的利用目的范围内使用个人信息。</p> <p>本公司致力于防止个人信息的非法查询。</p> </body> </head>
请不要太在意缩进有点不规则。最后的 HTML 代码缩进的对齐方法,将会在这篇文章的后面说明。
请注意布局模板的 body 元素里的这行。
<%= yield :layout %>
这个表现有些独特,姑且把它硬背下来吧。这里我们在渲染主要模板后将它插入。顺便说一下,英语里的动词yield是“产出(作物等)”的意思。
以上的例子中,因为 HTML 代码并不是很大,可能不太容易感受到它的优点,但是因为分割了 Web 网页,很容易掌握 HTML 的结构。
下面继续学习局部模板。
局部模板就是模板中包含的模板片段。外部的模板无论是布局还是主要模板都行。看下面 2 个 RHTML 模板。
<html>
<head>
<title><%= @title %></title>
</head>
<body>
<div id="container">
<div id="header"><%= render :partial => "header" %></div>
<div id="main"><%= yield :layout %></div>
<div id="linkList"><%= render :partial => "link_list" %></div>
<div id="footer"><%= render :partial => "footer" %></div>
</div>
</body>
</head>
<a href="/index.html"><img src="/images/company_logo.gif" width="161" height="64" alt="トップページ" border="0" /></a> <hr />
下面的模板取名为 header 。嵌套在上面的模板的 <%= render :partial => "header" %> 的部分中。添加 :partial 选项并调用方法 render ,局部模板就被插入到那个位置。英语的 partial 是“部分的”意思的形容词。
像下面一样创建一个 CSS 文件的话,一个不错的“栏布局”就形成了。
#container {
width: 750px;
}
#header {
background-color: #ddddee;
height: 80px;
}
#main {
float: left;
width: 550px;
}
#linkList {
float: right;
width: 200px;
}
#footer {
background-color: #eedddd;
height: 40px;
}
使用样式表文件的话结构和样式便被分离开来。另外,使用布局和局部模板的话可以把内容从文件的结构中分离开来。Web制作是个复杂的工程,尽量分离能分离的部分,使之成为小单位再进行操作,就提高了工作效率,并可以减少错误。
下一章终于要安装Rails并试着运行了。让我们尽情期待吧。
(2007/10/08)
- 前言
- 第1章 使用 Ruby on Rails 进行Web制作时的基本流程 (2007/09/24)
- 第2章 变量、数组、散列表 (2007/10/01)
- 第3章 布局和局部模板 (2007/10/08)
- 第4回 Rails的安装和Web服务器的启动 (2007/10/22)
- 第5章 模板文件的配置与命名规则 (2007/11/12)
- 第6回 YAML文件处理 (2007/12/03)
- 第7章 通过CSV格式加载Excel数据 (2008/02/23)

