Heidi Labs
GitHub TrendingGitHub Trending 项目约 4 分钟1,571 字

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