我试图更深入地了解Ruby on Rails框架,并且我一直在搜索关于我听到过但却从未理解的条款的大量搜索。
其中两个术语是" ActionPack"和" Rack"
根据每个人的文档:
Action Pack是一个用于处理和响应Web请求的框架。它提供了路由(将请求URL映射到操作),定义实现操作的控制器以及通过呈现视图(这些是各种格式的模板)生成响应的机制。简而言之,Action Pack在MVC范例中提供视图和控制器层。
Rack在支持Ruby和Ruby框架的Web服务器之间提供了一个最小的接口。
从我一直在做的谷歌搜索中,我已经将以下模型放在了我的脑海中,但我还是有点不确定:
如果我理解正确,Rack更多的是规范/标准,应用程序/程序应该接受输入/产生作为输出(执行此操作的程序"机架兼容")。 ActionPack是rails用来执行此操作的程序。因此请求将:Client HTTP request --> Server --> ActionPack --> The Rest of Rails etc.
这是对的吗?还是我误解了?
答案 0 :(得分:0)
许多其他框架可以是基于机架的应用程序,例如Sinatra或Grape。
要使用Rack,请提供" app":响应
call
方法的对象,将环境哈希作为参数,并返回包含三个元素的数组:HTTP响应代码
标题的哈希
响应主体,必须响应每个
这意味着:使用机架,您可以直接与Web请求交互,允许社区构建基于简单交互规则的不同工具或框架。有问题的app
对象是框架。
ActionPack
是Rails'与Rack交互的部分,它由ActionController
和ActionView
的组合组成,这使我们出色的MVC架构成为现实。查看this answer for a detailed view on ActionPack