2011-09-21 11 views
12

HAMLプロジェクトでHTTPストリーミングを使用する際に問題が発生しているようです。代わりにERBを使用すると、完全に機能します。どうやら、私はthis problemの唯一の人ではない。Rails HAMLを使用したHTTPストリーミング

コントローラーの上部にstreamを配置するか、またはアクションでrender :stream => trueを使用すると機能しません。

HAMLとHTTPストリーミングをうまく組み合わせるにはどうすればよいですか?

更新:私は宝石のページにhereという問題をオープンしました。

+0

私は、HAMLがクライアントに何かを出荷する前にページ全体をレンダリングしなければならないと思います。それは設計上の問題です。私は確信していないので、私は答えとしてこれを掲示するつもりはないし、今これをチェックする時間がない。 – Romain

+0

@Romain:あなたのご意見ありがとうございます。それは私の疑惑でもあります.HAMLは個々のファイルをERBに変換するのではなく、実際にはビュー全体が組み立てられてからHTMLを提供するのを待っています。またはそのようなもの。これは、3.1が廃止され、ストリーミングが利用できるようになった現在、大きな問題を抱えています。 –

+1

HAMLやRailsに既にこれに関するバグレポートがあるかどうか調べましたか?私はHAMLを修正することは不可能ではないと思います(間違ったことを仮定していることを前提とします)。 – Romain

答えて

2

これはまだHAML(source)によってサポートされていません。

HTTPストリーミングはコアHAMLエンジンへの変更の実質的な セットを必要とするものの一種です。基本的なケースでもそれを稼働させるにはちょっと複雑ですが、 を入力してください。 を入力すると、空白を食べる演算子のようなものになると、より多くの文字が得られます。

これは私が理論的に反対しているものではありませんが、それは の難しさを考慮して、私の優先順位のリストでは高いものもありません。

1

Hamlの内部構造は、実際にはバッファに書き込むようなものです。しかし、Railsが伝統的にテンプレート言語に提供してきた「標準」APIは、かなり簡単な入出力呼び出しです。私はHamlが現在「ストリーミングサポート」を持っているとは思っていませんが、何よりも単純にAPIの問題があります。

これを行うためにRailsがERBにどのように接続されているのか不思議です。

+0

https://github.com/rails/rails/blob/master/actionpack/lib/action_view/template/handlers/erb.rb#L61 – gunn

関連する問題