Ruby on Rails 2.1 - 目录结构


当您使用 Rails 的帮助程序脚本创建应用程序时,它会为您的应用程序创建整个目录结构。Rails 知道在这个结构中哪里可以找到它需要的东西,因此您不必提供任何输入。

这是在创建应用程序时由帮助程序脚本创建的目录树的顶级视图。除了版本之间的微小变化之外,每个 Rails 项目都将具有相同的结构和相同的命名约定。这种一致性给你带来了巨大的优势;您可以在 Rails 项目之间快速移动,而无需重新学习项目的组织。

为了理解这个目录结构,让我们使用安装章节中创建的演示应用程序。这可以使用简单的帮助命令来创建,如下所示 -

C:\ruby\> rails -d mysql demo

现在,进入演示应用程序根目录,如下所示 -

C:\ruby\> cd demo
C:\ruby\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 寻找控制器类的地方。控制器处理来自用户的网络请求。

  • app/helpers - helpers 子目录包含用于协助模型、视图和控制器类的任何帮助器类。它有助于保持模型、视图和控制器代码小、集中且整洁。

  • app/models - models 子目录包含对存储在应用程序数据库中的数据进行建模和包装的类。在大多数框架中,应用程序的这一部分可能会变得非常混乱、乏味、冗长且容易出错。Rails 让它变得非常简单!

  • app/view - 视图子目录包含显示模板,用于填充应用程序中的数据、转换为 HTML 并返回到用户的浏览器

  • app/view/layouts - 保存要与视图一起使用的布局的模板文件。这模拟了包装视图的常见页眉/页脚方法。在您的视图中,使用 <tt>layout :default </tt> 定义布局并创建名为 default.rhtml 的文件。在 default.erb 中,调用 <% Yield %> 使用此布局渲染视图。

  • config - 该目录包含应用程序需要的少量配置代码,包括数据库配置(在database.yml中)、Rails环境结构(environment.rb)以及传入Web请求的路由(routes.rb)。您还可以使用环境目录中的文件定制三个 Rails 环境的Behave,以进行测试、开发和部署。

  • 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 文件(民众)。应将其设置为 Web 服务器的 DOCUMENT_ROOT。

  • script - 此目录包含用于启动和管理将与 Rails 一起使用的各种工具的脚本。例如,有生成代码(generate)和启动Web服务器(server)的脚本等。

  • test - 你编写的测试和 Rails 为你创建的测试,都在这里。你会看到一个子目录,里面有模拟(mocks)、单元测试(unit)、固定装置(fixtures)和功能测试(functioning)。

  • tmp - Rails 使用此目录保存临时文件以进行中间处理。

  • 供应商- 第三方供应商提供的库(例如基本 Rails 发行版之外的安全库或数据库实用程序)位于此处。

除了这些目录之外,demo 目录中还有两个文件可用。

  • 自述文件- 该文件包含有关铁路应用程序的基本详细信息以及上述目录结构的描述。

  • Rakefile - 该文件类似于 Unix Makefile,有助于构建、打包和测试 Rails 代码。这将由随 Ruby 安装一起提供的rake实用程序使用。