Ruby on Rails 2.1 - 目录结构
当您使用 Rails 的帮助脚本创建应用程序时,它会为您的应用程序创建整个目录结构。Rails 知道在这个结构中哪里可以找到它需要的东西,所以您不必提供任何输入。
这是在创建应用程序时由帮助脚本创建的目录树的顶层视图。除了版本之间的微小变化外,每个 Rails 项目都将具有相同的结构和相同的命名约定。这种一致性为您带来了巨大的优势;您可以在 Rails 项目之间快速移动,而无需重新学习项目的组织。
为了理解这个目录结构,让我们使用在安装章节中创建的 demo 应用程序。可以使用简单的帮助命令创建它,如下所示 −
C: uby\> rails -d mysql demo
现在,进入演示应用程序根目录,如下所示 −
C: uby\> cd demo C: uby\demo> dir
您将发现目录结构如下 −
demo/ ..../app ......../controller ......../helpers ......../models ......../views ............../layouts ..../config ..../db ..../doc ..../lib ..../log ..../public ..../script ..../test ..../tmp ..../vendor README Rakefile
现在让我们解释一下每个目录的用途。
app − 它组织您的应用程序组件。它有子目录,包含视图(视图和助手)、控制器(控制器)和后端业务逻辑(模型)。
app/controllers − Rails 在 controllers 子目录中查找控制器类。控制器处理来自用户的 Web 请求。
app/helpers − helpers 子目录包含用于协助模型、视图和控制器类的任何助手类。它有助于保持模型、视图和控制器代码小巧、集中且整洁。
app/models − models 子目录包含对存储在应用程序数据库中的数据进行建模和包装的类。在大多数框架中,应用程序的这一部分可能会变得非常混乱、乏味、冗长且容易出错。Rails 使它变得非常简单!
app/view − views 子目录包含显示模板,用于填充应用程序中的数据、转换为 HTML 并返回到用户的浏览器
app/view/layouts − 包含与视图一起使用的布局的模板文件。这为包装视图的常见页眉/页脚方法建模。在您的视图中,使用 <tt>layout :default </tt> 定义布局并创建一个名为 default.rhtml 的文件。在 default.erb 中,调用 <% Yield %>使用此布局呈现视图。
config − 此目录包含您的应用程序所需的少量配置代码,包括数据库配置(在 database.yml 中)、Rails 环境结构(environment.rb)和传入 Web 请求的路由(routes.rb)。您还可以使用在环境目录中找到的文件定制三个 Rails 环境的行为以进行测试、开发和部署。
db − 通常,您的 Rails 应用程序将具有访问关系数据库表的模型对象。您可以使用您创建并放置在此目录中的脚本来管理关系数据库。
doc − 此目录是使用 rake doc:app 生成应用程序文档时存储的位置。
lib − 特定于应用程序的库放在此处。基本上,任何不属于控制器、模型或助手的自定义代码。此目录位于加载路径中。
log − 错误日志放在此处。Rails 创建脚本来帮助您管理各种错误日志。您将找到服务器 (server.log) 和每个 Rails 环境 (development.log、test.log 和 production.log) 的单独日志。
public − 与 Web 服务器的公共目录一样,此目录包含不会更改的 Web 文件,例如 JavaScript 文件 (public/javascripts)、图形 (public/images)、样式表 (public/stylesheets) 和 HTML 文件 (public)。这应设置为 Web 服务器的 DOCUMENT_ROOT。
script − 此目录包含用于启动和管理您将与 Rails 一起使用的各种工具的脚本。例如,有脚本用于生成代码 (generate) 和启动 Web 服务器 (server) 等。
test − 您编写的测试和 Rails 为您创建的测试都放在这里。您将看到模拟 (mocks)、单元测试 (unit)、装置 (fixtures) 和功能测试 (function) 的子目录。
tmp − Rails 使用此目录保存用于中间处理的临时文件。
vendor − 第三方供应商提供的库(例如基本 Rails 发行版以外的安全库或数据库实用程序)放在这里。
除了这些目录之外,demo 目录中还有两个文件可用。
README −此文件包含有关 Rail 应用程序的基本详细信息和上述目录结构的描述。
Rakefile − 此文件类似于 Unix Makefile,可帮助构建、打包和测试 Rails 代码。它将由 Ruby 安装随附的 rake 实用程序使用。