我不明白!

架子: http://rack.rubyforge.org/

金属导轨: http://weblog.rubyonrails.org/2008/12/17/introducing-rails-metal

看了两篇文章,我的眼睛都模糊了。这两个组件如何关联?例子会很棒吗?

有帮助吗?

解决方案

Rack 是 Ruby Web 服务器可以实现的一个非常轻量级的规范。它是中间件,这意味着它位于 Web 服务器之间(例如客运)和铁路。

Rails Metal 是一种在您需要最大性能时使用 Rails 处理 HTTP 请求的方法。它实际上会让您陷入困境,并绕过标准 Rails 的请求/响应周期为您提供的所有正常功能(以及开销)。从技术上讲,Rails Metal 是 Rack handler 的实现。

您可能会发现这两个关于该主题的 Railscast 内容丰富:

您可以使用以下命令获取 Rails 应用程序的 Rack 中间件堆栈列表 rake middleware

其他提示

机架是抽象的一个通用的Ruby API /层,使不同的应用程序框架集成到一个Web服务器。

滑轨金属是滑轨的实现机架处理程序。它不仅包括调用Rails的处理程序也暴露出了自己的API,它使您更轻松地创建自己的处理程序击中Web服务器和旁路Rails核心。

有一个很好的讨论和一些例子 杰西·纽兰的网站:

所以,本质上, 铁轨金属是围绕Rails的新机架中间件支撑的薄包装纸. 。机架中间件是非常有力的东西:与框架无关的组件可以独立或与其他中间件共同进行处理。

在除了由其他人所覆盖的差异,我想注意,机架应用可以是任一中间件或最终端点而ActionController::Metal始终是一个端点的从未中间件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top