我试图对Rails框架有一个更深入的了解,我一直在谷歌上搜索我所听到的、但从未理解过的术语。
其中两个术语是"ActionPack“和"Rack”
根据这些文件中的每一个:
ActionPack:
Action是一个处理和响应web请求的框架。它提供了路由机制(将请求URL映射到操作),定义实现操作的控制器,并通过呈现视图生成响应,视图是各种格式的模板。简而言之,Action在MVC模式中提供视图和控制器层。
机架:
Rack提供了支持Ruby和Ruby框架的and服务器之间的最小接口。
从我一直在做的谷歌搜索中,我把下面的模型放在我的脑海中,但我仍然有点不确定:
如果我正确理解的话,Rack更像是一种规范/标准,说明应用程序/程序应该接受什么作为输入/输出(这样做的程序被认为是“与机架兼容的”)。ActionPack是rails用来做这件事的程序。所以请求会转到:Client HTTP request --> Server --> ActionPack --> The Rest of Rails etc.
这是正确的吗?还是我误会了?
发布于 2017-02-11 17:25:54
许多其他框架可以是基于Rack的应用程序,如辛纳特拉或葡萄。
要使用Rack,提供一个"app":一个响应
call方法的对象,将环境哈希作为参数,并返回一个包含三个元素的数组: HTTP响应代码 标题的散列 响应体,它必须对每个响应
这意味着:使用机架,您可以直接与web请求交互,从而允许社区构建基于该简单交互规则的不同工具或框架。所讨论的app对象是框架。
ActionPack是Rails与Rack交互的一部分,它由ActionController和ActionView组合而成,这使得我们出色的MVC体系结构如出一辙。检查这是关于ActionPack的详细视图的答案
https://stackoverflow.com/questions/42169794
复制相似问题