15

我对基本的 Rails 概念有相当不错的掌握,如 ActiveRecord、路由、迁移等。我很难理解的一件事是 ActionDispatch。我找不到它是什么的简单英语描述(或实际上任何描述)。那是什么?

4

3 回答 3

22

一言以蔽之:Action Dispatch 将请求路由到控制器。对于更详细的解释,我建议阅读“ Rails 4 中的 Action Dispatcher 和 Action Controller ”。


动作调度和动作控制器

于 2017-01-11T11:17:17.057 回答
12

Action Dispatch 实际上只是一堆具有以下职责的代码。它解析有关 Web 请求的信息,处理用户定义的路由,并执行与 HTTP 相关的高级处理,例如 MIME 类型协商,解码 POST、PATCH 或 PUT 正文中的参数,处理 HTTP 缓存逻辑、cookie 和会话。

于 2016-05-21T05:29:40.540 回答
0

在我看来,亚历克斯泰勒给出了最好的解释Dispatcher

Dispatcher 是一个小类,它负责实例化控制器并传递我们的请求以及一个空的响应对象。当为请求识别合适的路由时调用它。它不知道请求是如何到达它家门口的,但它知道当它看到我们的请求时该怎么做:实例化 UsersController 并将我们的请求交给它。正如我们将看到的,它充当我们控制器的对象工厂,无需我们在类本身之外的任何地方声明我们的控制器类。

完整文章:深入了解 Rails 中的路由和控制器调度

于 2022-02-19T21:40:53.597 回答