直接从Rails操作中使用Rack中间件

3
我有一个 Rack 中间件,想要将其嵌入我的 Rails 应用中。通过嵌入,我是指将其注入到应用程序的布局中,以便 <%= yield %> 包含 Rack 应用程序返回的正文。
以下是我目前的解决方案:
def show
  result = MyRackApp.new.call(request.env)
  render :text => result[2].read, :status => result[0]
end

这是有问题的,因为result[2]并不总是具有IO风格的read方法,例如它可能是一个Rack::File
那么,如何让Rails控制器呈现[200, {}, some_io_object]类型的Rack响应?或者,是否可以使用能够呈现Rails布局的Rack中间件以另一种方式来完成?
我正在使用Rails 3.0.9。
1个回答

1
如果你想从Rails中使用一个rack应用程序,你需要在路由器(routes.rb)中挂载它。
AppName::Application.routes.draw do 
  # Other routes

  mount MyRackApp => "/pathToReachIt"

  # root to: '...'
end

更多信息 在这里


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接