【发布时间】:2014-02-06 12:57:45
【问题描述】:
我是 Rack and Rails metal 的新手,谁能告诉我在哪种情况下必须使用哪种?根据我的理解,Rack 和 Metal 都可以过滤/绕过 http 请求和响应。需要更好的说明,什么时候使用什么? 提前致谢!!!
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 rack
我是 Rack and Rails metal 的新手,谁能告诉我在哪种情况下必须使用哪种?根据我的理解,Rack 和 Metal 都可以过滤/绕过 http 请求和响应。需要更好的说明,什么时候使用什么? 提前致谢!!!
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 rack
据我所知,Rails Metal 很久以前就来自 Rails 3 的 removed。基本上它曾经是 Rack 周围的一个薄包装器,它可以更像一个端点而不是一个过滤器(这通常是 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 框架的网络服务器之间的最小接口。
所以它基本上有助于标准化任何支持 Ruby 的网络服务器与任何可能的 Ruby Web 框架之间的通信。
这是 Rack 从Passenger's docs 获取的一个很好的示意图
【讨论】: