gpt4 book ai didi

ruby-on-rails - ruby on rails 3.1 中的流式 View

转载 作者:行者123 更新时间:2023-12-03 18:34:31 27 4
gpt4 key购买 nike

我是 rails 的新手,对于 ruby​​ 也是如此。我已经构建了一个基于 ruby​​ 1.9.2 和 rails 3.1 的 rails 应用程序

我遇到了一个问题,可能与我对 Rails 中的流式实现的理解有关。在我看来,在 rails 渲染模板内容之前,它必须完成评估它的过程。

举例来说,我有一个如下所示的 cgi 脚本

#!/bin/sh


cat <<END
Content-Type: text/html

END

for i in {1..10}
do
echo $i
sleep 1
done

这将在浏览器中按脚本呈现的顺序从 1 到 10 显示数字,而不是一次全部显示。这是我想在 Rails View 中模拟的行为。

假设我在 View 中有以下内容。

<h1> hi </h1>
<%
sleep 5
%>
<h2> bye </h2>

它将等到 sleep 5 完成后再显示任何内容。

使用 curl -i 观察来自 Web 服务器的响应,我立即按预期使用传输编码获得响应 header :按预期分块。但是在 sleep 完成之前它不会呈现正文内容。

我需要做什么才能让它以与我在上面粘贴的简单 cgi 脚本相同的方式呈现正文内容?具体来说,首先是 <h1> hi </h1>然后 5 秒后 <h2> bye </h2>

最佳答案

查看 ActionController::Streaming 的文档.即:

Streaming can be added to a given template easily, all you need to do is to pass the :stream option.

class PostsController
def index
@posts = Post.scope
render :stream => true
end
end

当然,您需要阅读其余文档以了解详细信息。

关于ruby-on-rails - ruby on rails 3.1 中的流式 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7849983/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com