无法获得在rails 4.1 + puma下工作的内容长度标题

时间:2014-10-23 17:46:31

标签: ruby-on-rails ruby rack content-length puma

设置为:Puma:2.9.1 Rails:4.1.5 机架:1.5.2

根据文档,我试图通过添加fallowing到我的application.rb

来获取ContentLength标头。
config.middleware.use Rack::ContentLength

不幸的是,回应仍然存在。经过一些投资后,我在Rack :: ContentLength类中找到了以下条件:

  if !STATUS_WITH_NO_ENTITY_BODY.include?(status.to_i) &&
     !headers['Content-Length'] &&
     !headers['Transfer-Encoding'] &&
     body.respond_to?(:to_ary)

body.respond_to?(:to_ary)只是一个产生错误的东西。在那个上下文中,body是Rack :: BodyProxy的实例,其中responds_to?被覆盖:

def respond_to?(*args)
  return false if args.first.to_s =~ /^to_ary$/
  super or @body.respond_to?(*args)
end

我真的很困惑。删除body.respond_to?(:to_ary)解决了问题,但我不安全只是从机架lib中删除代码块。任何有助于获取内容长度标题的帮助表示赞赏。感谢。

0 个答案:

没有答案