ruby - 为什么 Rack 响应主体是数组而不是字符串?

标签 ruby rack

他们文档中的经典 hello world 示例,

class HelloWorld
  def call(env)
    return [200, {}, ["Hello world!"]]
  end
end

我的问题是为什么第三个值是 [Hello world!],而不是“Hello world”?来自他们的文档,

The Body must respond to each and must only yield String values. The Body itself should not be an instance of String, as this will break in Ruby 1.9.

为什么 body 需要对每个使用react?在什么情况下这很重要?

最佳答案

我认为rack起源于python的wsgi。这是python的解释: http://www.python.org/dev/peps/pep-3333/#buffering-and-streaming

关于ruby - 为什么 Rack 响应主体是数组而不是字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10492181/

相关文章:

ruby - 从 TestCase 调用 Sinatra 应用程序实例方法

ruby - 如何在 Rack/测试中设置 env ['SERVER_NAME' ]?

ruby-on-rails - Rails 5 集合选择

ruby - 这两个 Ruby 枚举器 : [1, 2,3].map 与 [1,2,3].group_by 之间的区别

ruby - 检查类上是否定义了方法

ruby-on-rails - 在 Rails 环境中由 Rack 引发时如何拯救 URI::InvalidURIError?

ruby - 寻找 Rack 应用程序结构和 config.ru 规范?

ruby - capybara /sinatra 测试的 Rack 错误...似乎没有让 Sinatra 应用程序通过

ruby-on-rails - Ruby 中的 Object::private 和 Object::public 是什么?

ruby - Capybara + RSpec, spec/features 目录被 rspec 忽略。命令?