无法在 Rails 4 中将 render:text 与 proc 一起使用
Unable to use render :text with a proc in Rails 4
我正在尝试将存储在 Amazon S3 上的数据流式传输到客户端。不幸的是,我无法重定向到带有预签名 URL 的存储桶,以支持 HTML 等文件,这些文件需要从与其资产相同的域提供原始 HTML 文件(css,等等)。
看完http://apidock.com/rails/ActionController/Base/render
我觉得我应该能够做到以下几点:
render :text => proc { |response, output|
s3_object.get(response_target: output)
end
然而,页面上的输出只是 proc.to_s
的结果
同样,Rails 文档中提供的示例:
render :text => proc { |response, output|
100.times do |i|
output.write("This is line #{i}\n")
end
}
似乎也是如此。
有人 运行 遇到过这个问题吗?为什么 Rails 没有正确呈现 lambda 的结果而不是调用 .to_s?
谢谢。
正如您的 link 所说,此选项在 Rails 2.3.8 之前可用。
它已从 Rails 3.
中弃用
这是一个显示此功能问题的旧时讨论:https://groups.google.com/forum/#!topic/rubyonrails-core/BnVHfD-yO_I。
我正在尝试将存储在 Amazon S3 上的数据流式传输到客户端。不幸的是,我无法重定向到带有预签名 URL 的存储桶,以支持 HTML 等文件,这些文件需要从与其资产相同的域提供原始 HTML 文件(css,等等)。
看完http://apidock.com/rails/ActionController/Base/render
我觉得我应该能够做到以下几点:
render :text => proc { |response, output|
s3_object.get(response_target: output)
end
然而,页面上的输出只是 proc.to_s
同样,Rails 文档中提供的示例:
render :text => proc { |response, output|
100.times do |i|
output.write("This is line #{i}\n")
end
}
似乎也是如此。
有人 运行 遇到过这个问题吗?为什么 Rails 没有正确呈现 lambda 的结果而不是调用 .to_s?
谢谢。
正如您的 link 所说,此选项在 Rails 2.3.8 之前可用。
它已从 Rails 3.
中弃用这是一个显示此功能问题的旧时讨论:https://groups.google.com/forum/#!topic/rubyonrails-core/BnVHfD-yO_I。