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 实用程序使用。