
- 学习 Ruby on Rails
- Rails 2.1 首页
- Rails 2.1 简介
- Rails 2.1 安装
- Rails 2.1 框架
- Rails 2.1 目录结构
- Rails 2.1 示例
- Rails 2.1 数据库设置
- Rails 2.1 Active Records
- Rails 2.1 数据库迁移
- Rails 2.1 控制器
- Rails 2.1 视图
- Rails 2.1 布局
- Rails 2.1 脚手架
- Rails 2.1 和 AJAX
- Rails 2.1 上传文件
- Rails 2.1 发送邮件
- 高级 Ruby on Rails 2.1
- Rails 2.1 RMagick 指南
- Rails 2.1 基本 HTTP 认证
- Rails 2.1 错误处理
- Rails 2.1 路由系统
- Rails 2.1 单元测试
- 高级 Ruby on Rails 2.1
- Rails 2.1 提示与技巧
- 快速参考指南
- 快速参考指南
- Ruby on Rails 2.1 有用资源
- Ruby on Rails 2.1 - 资源
- Ruby on Rails 2.1 - 讨论
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实用程序使用。