私はレールとRubyについては初めてです。私はRuby 1.9.2とレールをベースにしたレールアプリを構築しました。3.1ruby on railsでのストリーミングビュー3.1
私は問題を抱えていました。レールがテンプレートのコンテンツをレンダリングする前に、それを評価するプロセスを完了しなければならないと私には思われます。
彼らはスクリプトによってレンダリングされるのは、以下の
#!/bin/sh
cat <<END
Content-Type: text/html
END
for i in {1..10}
do
echo $i
sleep 1
done
ように私は、CGIスクリプトを持っていることを、たとえば言わせこれがすべてではない、一度、ブラウザに1から10までの数字を順番に表示されます。これは、レール表示でエミュレートしたい動作です。
私はビューで次のように言うことができます。
<h1> hi </h1>
<%
sleep 5
%>
<h2> bye </h2>
何も表示されないうちにスリープ5が完了するまで待機します。
ウェブサーバーからの応答を見るためにcurl -iを使用すると、期待どおりにチャンクされたTransfer-Encodingで応答ヘッダーがすぐに取得されます。しかし、それは睡眠が完了するまで体の内容を表現しません。
上記の貼り付けた単純なCGIスクリプトと同じ方法でボディコンテンツをレンダリングするには、どうすればよいですか?具体的には、最初に<h1> hi </h1>
を入力してから5秒後に<h2> bye </h2>
?
これはコントローラに 'format.html {render:stream => true}'があり、curlを使ってレスポンスヘッダとレイアウトをストリームすることができますが、テンプレート。 –
と同じですが、テンプレートをストリームしません... – Subhas