Rails:基于 MVC 的 Web 应用框架
本文目录
什么是 Rails?#
Rails 是一个 Web 应用框架,包含按照模型-视图-控制器(Model-View-Controller,MVC)模式创建数据库支持的 Web 应用所需的一切。
理解 MVC 模式是理解 Rails 的关键。MVC 把应用分成三层:模型(Model)、视图(View)和控制器(Controller),每层都有特定的职责。
模型层#
模型层表示领域模型(例如 Account、Product、Person、Post 等),并封装特定于应用的业务逻辑。在 Rails 中,由数据库支持的模型类派生自 ActiveRecord::Base。Active Record 允许你把数据库行中的数据呈现为对象,并用业务逻辑方法修饰这些数据对象。虽然大多数 Rails 模型都由数据库支持,但模型也可以是普通的 Ruby 类,或实现 Active Model 模块所提供的一组接口的 Ruby 类。
视图层#
视图层由「模板」组成,负责为应用资源提供适当的表示。模板可以有多种格式,但大多数视图模板是嵌入了 Ruby 代码的 HTML(ERB 文件)。视图通常被渲染以生成控制器响应,或生成电子邮件正文。在 Rails 中,视图生成由 Action View 处理。
控制器层#
控制器层负责处理传入的 HTTP 请求并提供适当的响应。通常这意味着返回 HTML,但 Rails 控制器也可以生成 XML、JSON、PDF、移动端专用视图等。控制器加载并操作模型,并渲染视图模板以生成适当的 HTTP 响应。在 Rails 中,传入请求由 Action Dispatch 路由到适当的控制器,控制器类派生自 ActionController::Base。Action Dispatch 和 Action Controller 一起打包在 Action Pack 中。
框架与库#
Active Record、Active Model、Action Pack 和 Action View 都可以在 Rails 之外独立使用。
除此之外,Rails 还附带:
- Action Mailer:用于生成和发送电子邮件的库
- Action Mailbox:用于在 Rails 应用中接收电子邮件的库
- Active Job:用于声明作业并让它们在多种队列后端上运行的框架
- Action Cable:用于把 WebSocket 与 Rails 应用集成的框架
- Active Storage:用于把云端和本地文件附加到 Rails 应用的库
- Action Text:用于处理富文本内容的库
- Active Support:一组对 Rails 有用的实用类和标准库扩展,也可以在 Rails 之外独立使用
入门#
如果尚未安装 Rails,请在命令提示符下安装:
$ gem install rails
在命令提示符下创建一个新的 Rails 应用:
$ rails new myapp
其中「myapp」是应用名称。
切换到 myapp 目录并启动 Web 服务器:
$ cd myapp
$ bin/rails server
使用 --help 或 -h 运行以查看选项。
访问 http://localhost:3000,你将看到 Rails 启动画面,其中显示你的 Rails 和 Ruby 版本。
按照指南开始开发你的应用。以下资源可能对你有所帮助:
- Rails 入门
- Ruby on Rails 指南
- API 文档
贡献#
我们鼓励你为 Ruby on Rails 做出贡献!请阅读《为 Ruby on Rails 贡献》指南,了解如何着手。加入我们!
想要报告 Rails 中可能存在的安全漏洞?请查看我们的安全政策,了解如何着手。
所有参与 Rails 及其子项目代码库、问题跟踪器、聊天室和邮件列表互动的人,都应遵守 Rails 行为准则。
许可证#
Ruby on Rails 在 MIT 许可证下发布。
关于#
Ruby on Rails
rubyonrails.org
主题:activejob、activerecord、framework、html、mvc、rails、ruby