Ruby on Rails - 目录结构

当您使用 Rails 帮助脚本创建应用程序时,它会为应用程序创建整个目录结构。Rails 知道在此结构中查找所需内容的位置,因此您无需提供任何输入。

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

要了解此目录结构,让我们使用在"安装"一章中创建的 demo 应用程序。可以使用简单的帮助命令 rails demo 创建它。

现在,按如下方式进入演示应用程序根目录 −

tp> cd demo
demo> dir

您将在 Windows 中找到以下目录结构 −

Directory

现在让我们解释一下每个目录的用途

  • 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.html.erb 的文件。在 default.html.erb 中,调用 <% Yield %> 以使用此布局呈现视图。

  • components − 此目录包含组件,即捆绑模型、视图和控制器的小型独立应用程序。

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

  • db − 通常,您的 Rails 应用程序将具有访问关系数据库表的模型对象。您可以使用您创建并放置在此目录中的脚本来管理关系数据库。

  • doc − Ruby 有一个名为 RubyDoc 的框架,可以自动为您创建的代码生成文档。您可以在代码中使用注释来协助 RubyDoc。此目录包含所有 RubyDoc 生成的 Rails 和应用程序文档。

  • lib − 您将库放在此处,除非它们明确属于其他地方(例如供应商库)。

  • log − 错误日志放在此处。Rails 创建可帮助您管理各种错误日志的脚本。您将找到针对服务器(server.log)和每个 Rails 环境(development.log、test.log 和 production.log)的单独日志。

  • public −与 Web 服务器的公共目录一样,此目录包含不会更改的 Web 文件,例如 JavaScript 文件 (public/javascripts)、图形 (public/images)、样式表 (public/stylesheets) 和 HTML 文件 (public)。

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

  • test − 您编写的测试和 Rails 为您创建的测试都在这里。您将看到模拟 (mocks)、单元测试 (unit)、装置 (fixtures) 和功能测试 (function) 的子目录。

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

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

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

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

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