Ruby on Rails中Rack和Rails Metal之间的确切区别是什么?

我是Rack and Rails金属的新手,谁能告诉我哪种情况必须使用哪个? 根据我的理解,Rack和Metal都可以过滤/绕过http请求和响应。 需要更好的澄清,何时使用什么? 提前致谢!!!

据我所知,很久以前Rails Metal已经从Rails 3中删除了。 基本上它曾经是Rack周围的薄包装器,它可以更像是一个端点而不是一个filter(通常是Rack中间件的情况)。 查看这篇文章以获得更详细的解释: http : //jnewland.github.io/articles/2008/12/16/rails-metal-a-micro-framework-with-the-power-of-rails-m/

如今,作为一种替代方案,你可以使用的是ActionController :: Metal ,它是一个非常轻量级的控制器,可以提供非常快速的响应而不提供许多“酷”Rails的东西。

就Rack而言,它基本上是:

支持Ruby和Ruby框架的Web服务器之间的最小接口。

因此,它基本上有助于标准化任何支持Ruby的Web服务器与任何可能的Ruby Web框架之间的通信。

这是Rack从Passenger的文档中获取的一个很好的示意图 在此处输入图像描述