Ruby on Rails - 目录结构


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

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

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

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

tp> cd demo
demo> dir

您将在 Windows 中找到如下目录结构 -

目录

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

  • app - 它组织您的应用程序组件。它有包含视图(视图和助手)、控制器(控制器)和后端业务逻辑(模型)的子目录。

  • app/controllers - 控制器子目录是 Rails 寻找控制器类的地方。控制器处理来自用户的网络请求。

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

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

  • app/view - 视图子目录包含显示模板,用于填充应用程序中的数据,转换为 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 环境的Behave,以进行测试、开发和部署。

  • 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 文件(民众)。

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

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

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

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

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

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

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