Web设计的Ruby on Rails
第5章 模板文件的配置与命名规则
Ruby on Rails 使用上很重要的一点,就是记住文件配置与命名相关的规则。
虽然有点麻烦,但是正是因为有一定的规则,在和其他程序员一起工作的时候才不容易产生误解。
我们打开命令提示符,进入到上一章《Rails的安装与Web服务器的启动》中生成的 sample 目录。这个目录叫做 RAILS_ROOT 对吧。然后进入app 目录。
> cd sample > dir
注意例子开头的 > 不要输入。此外,Mac OS X 或 Linux 中,使用命令 ls 代替 dir 。
app 目录里存在 4 个子目录,作用分别如下:
controllers-- 放置生成传递到模板的数据的程序helpers-- 放置可在模板里调用的辅助方法程序models-- 放置数据库检索程序views-- 放置模板文件
这篇文章里我们不涉及 models 目录。现在忘记 helpers 目录也无妨。
前一章的 RAILS_ROOT/public 目录中,既存的 HTML 文件放置不动,启动 Webrick 试着在浏览器中显示。选择一个 HTML 文件,把扩展名从 .html 变为 .rhtml ,移至 RAILS_ROOT/app/views 目录。
这里要注意一件事。必须放到 RAILS_ROOT/app/views 目录下面的子目录中。初期状态的时候并不存在子目录,所以作一个适当的命名。我们把它叫做top 。并将 RAILS_ROOT/public/about.html 移至 RAILS_ROOT/app/views/top/about.rhtml 。
接下来做的是生成控制台。这是生成传递到模板的数据的程序。这个程序的文件名,在设置了模板文件的子目录的名字上加上 _controller.rb 作成。像我的就是 top_controller.rb ,放到 RAILS_ROOT/app/controllers 目录中。
top_controller.rb 的内容像下面一样极其简单。
class TopController < ApplicationController end
这个程序,定义了继承 ApplicationController 类的 TopController 类。类 与继承 是面向对象编程里重要的概念。虽说有各种各样的意思,从 Web 制作来看,类不过就是后面要说明的“动作”的容器。继承就是继承别的类的功能,尽管这样解释有点抽象。另外,Ruby 语言中,类定义是从 class 到end 结束。用 < 符号表示继承。
再在刚才的 top_controller.rb 中加上一点代码,使“生成传递到模板的代码”这个功能发挥作用。
class TopController < ApplicationController
def about
@title = '网站说明'
end
end
从 def about 到 end ,是 Ruby 语言中定义方法的语法。方法 是子程序的一种,作用是将ruby语句进行归纳并通过命名调出。控制台中定义的方法(准确的是,公开的实例方法)叫做动作。
@title 是第2章中学习的实例变量。实例变量可以从模板引用。在此之前说的控制台向模板传递数据,实际就是将生成的数据给模板的意思。
要注意的是控制台对应目录,动作对应模板。举个例子,它们的关系像是控制台 top_controller.rb 的动作 about ,给 RAILS_ROOT/app/views/top 目录的 about.rhtml 模板准备数据。
使用 Rails 制作 Web,对这种关系的透彻的理解是十分重要的。
下一章学习如何从复杂的 YAML 文件中读取数据。
(2007/11/12)
- 前言
- 第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)

