2011-08-10 10 views
3

私はRailsアプリケーションに埋め込みたいRackミドルウェアを持っています。埋め込みによって、私はアプリケーションのレイアウトにそれを注入することを意味するので、<%= yield %>にはRackアプリが返すものの本体が含まれています。 result[2]は常にIOスタイルread方法を持っていないので、これは、しかし、問題があるRailsのアクションからラックミドルウェアを直接使用する

def show 
    result = MyRackApp.new.call(request.env) 
    render :text => result[2].read, :status => result[0] 
end 

、それは例えばRack::File次のようになります。

は、ここに私の現在のソリューションです。

したがって、Railsコントローラを[200, {}, some_io_object]タイプのラック応答にレンダリングさせるにはどうすればよいですか?別の方法として、RailsのレイアウトをレンダリングできるRackミドルウェアを使って別の方法でやりますか?

私はRails 3.0.9を使用しています。

答えて

1

あなたがRailsのからラックのアプリケーションを使用したい場合は、あなたがあなたのルーター(routes.rbを)からそれをマウントする必要が

AppName::Application.routes.draw do 
    # Other routes 

    mount MyRackApp => "/pathToReachIt" 

    # root to: '...' 
end 

詳細情報here

関連する問題