为什么机架响应体不是字符串?
他们的文档中的经典hello world示例,
class HelloWorld def call(env) return [200, {}, ["Hello world!"]] end end
我的问题是为什么第三个值是[Hello world!“],而不是”Hello world“?来自他们的doc,
Body必须响应每个,并且只能产生String值。 Body本身不应该是String的实例,因为这将在Ruby 1.9中破坏。
为什么身体需要对每个人做出回应? 在什么情况下重要?
我认为机架起源于python的wsgi。 以下是python的解释: http : //www.python.org/dev/peps/pep-3333/#buffering-and-streaming
从句子判断The Body itself should not be an instance of String, as this will break in Ruby 1.9.
,我假设响应的最后一个元素必须是一个Enumerable
。 由于String
在1.9中停止包含此模块,因此您需要某种实现它的集合。
顺便说一句:你好世界的例子往往不是很好,无法弄清楚为什么某些东西以某种方式完成,它们太琐碎了。