Ruby on Rails 2.1 - 目录结构



当您使用 Rails 的辅助脚本创建应用程序时,它会创建应用程序的整个目录结构。Rails 知道在哪里可以找到其在此结构中需要的资源,因此您无需提供任何输入。

以下是应用程序创建时辅助脚本创建的目录树的顶层视图。除了版本之间的微小更改外,每个 Rails 项目都将具有相同的结构和相同的命名约定。这种一致性为您带来了巨大的优势;您可以快速地在 Rails 项目之间切换,而无需重新学习项目的组织方式。

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

C:\ruby\> rails -d mysql demo

现在,进入 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 − 它组织您的应用程序组件。它包含用于存放视图 (views 和 helpers)、控制器 (controllers) 和后端业务逻辑 (models) 的子目录。

  • app/controllers − 控制器子目录是 Rails 查找控制器类的地方。控制器处理来自用户的 Web 请求。

  • app/helpers − helpers 子目录包含用于辅助模型、视图和控制器类的任何辅助类。它有助于使模型、视图和控制器代码保持简洁、重点突出且井井有条。

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

  • app/views − views 子目录包含显示模板,用于填充应用程序数据,转换为 HTML 并返回到用户的浏览器。

  • app/views/layouts − 包含与视图一起使用的布局的模板文件。这模拟了常用的页眉/页脚包装视图的方法。在您的视图中,使用<tt>layout :default </tt>定义布局,并创建一个名为 default.rhtml 的文件。在 default.erb 中,调用<% yield %> 以使用此布局呈现视图。

  • config − 此目录包含应用程序所需的少量配置代码,包括数据库配置 (database.yml)、Rails 环境结构 (environment.rb) 和传入 Web 请求的路由 (routes.rb)。您还可以使用 environments 目录中的文件调整测试、开发和部署这三个 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) 和功能测试 (functional) 的子目录。

  • tmp − Rails 使用此目录来保存用于中间处理的临时文件。

  • vendor − 此处存放由第三方供应商提供的库(例如超出基本 Rails 发行版的安全库或数据库实用程序)。

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

  • README − 此文件包含有关 Rail 应用程序的基本详细信息以及上述目录结构的说明。

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

广告