我正在使用Ruby on Rails 3,我想知道使用中间件处理HTTP请求(拦截请求URL请求和执行响应)与控制器流(使用respond_to
)有什么区别。
检查日志文件,我可以看到中间件加载和查询几乎就像调用控制器方法一样。这是因为,在后一种情况下(调用控制器),如果HTTP请求是针对JSON数据的,则RoR不呈现模板文件(它是“自动进程”?!)。
所以,你怎么看?
答案 0 :(得分:0)
使用Rack Middleware的最大优势之一是您可以过滤响应 - 例如,以某种方式修改然后让它采取正常的过程。查看标准Rails 3应用程序中的rake middleware
,查看Rails用于执行会话,闪存,甚至基于应用程序自己的routes.rb
路由的所有中间件堆栈。当然,如有必要,中间件也可以终止响应过滤并充当请求端点。
类似于中间件的功能,但它充当端点,是Rails Metal,允许您在必要时从应用程序中获得一些额外的性能(假设您不需要完整的Rails堆栈)。
我建议您查看以下Railscast: