Я новичок в рельсах и рубине в этом отношении. Я создал приложение для рельсов на основе ruby 1.9.2 и rails 3.1.
Я столкнулся с проблемой, вероятно, с моим пониманием реализации потоковой передачи в рельсах. Мне кажется, прежде чем рельсы отрендерят содержимое шаблона, он должен завершить процесс его оценки.
скажем, например, что у меня есть скрипт cgi, подобный следующему
#!/bin/sh
cat <<END
Content-Type: text/html
END
for i in {1..10}
do
echo $i
sleep 1
done
это будет отображать числа последовательно от 1 до 10 в браузере, поскольку они отображаются сценарием, а не все сразу. Это поведение, которое я хотел бы подражать в представлении рельсов.
скажем, у меня есть следующее представление.
<h1> hi </h1>
<%
sleep 5
%>
<h2> bye </h2>
он будет ждать, пока сон 5 не завершится, прежде чем что-либо отображать.
используя curl -i для просмотра ответа от веб-сервера, я сразу же получаю заголовок ответа, как и ожидалось, с помощью Transfer-Encoding: chunked, как и ожидалось. однако он не отображает содержимое тела, пока не завершится сон.
что мне нужно сделать, чтобы он отображал содержимое тела так же, как тот простой скрипт cgi, который я вставил выше? В частности, сначала <h1> hi </h1>
, затем через 5 секунд <h2> bye </h2>
?