Ruby on Rails - 目录结构



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

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

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

现在,进入 demo 应用程序的根目录,如下所示:

tp> cd demo
demo> dir

您将在 Windows 中找到如下所示的目录结构:

Directory

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

  • **app** - 它组织您的应用程序组件。它有子目录,用于保存视图(视图和辅助方法)、控制器(控制器)以及后端业务逻辑(模型)。

  • **app/controllers** - controllers 子目录是 Rails 查找控制器类的地方。控制器处理来自用户的 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)。您还可以使用 environments 目录中找到的文件,为测试、开发和部署这三个 Rails 环境定制行为。

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

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

  • **lib** - 您将把库放在这里,除非它们明确属于其他地方(例如供应商库)。

  • **log** - 错误日志放在这里。Rails 创建了帮助您管理各种错误日志的脚本。您将找到服务器 (server.log) 和每个 Rails 环境 (development.log、test.log 和 production.log) 的单独日志。

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

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

  • **test** - 您编写的测试以及 Rails 为您创建的测试都放在这里。您将看到模拟 (mocks)、单元测试 (unit)、夹具 (fixtures) 和功能测试 (functional) 的子目录。

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

  • **vendor** - 由第三方供应商提供的库(例如超出基本 Rails 发行版的安全库或数据库实用程序)放在这里。

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

  • **README** - 此文件包含有关 Rail 应用程序的基本详细信息以及上面解释的目录结构的描述。

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

广告