如何在 Rails 的视图上在 Ruby 上打印 X-Runtime?

How to print X-Runtime on Ruby on Rails's view?

我希望在我的视图中打印 Rack::Runtime 设置的响应时间。 我知道我们可以通过“curl -I address”获得所有 HTTP headers。

然而,Rails控制器中的响应object仅默认包含几个headers:

config.action_dispatch.default_headers = {
  'X-Frame-Options' => 'SAMEORIGIN',
  'X-XSS-Protection' => '1; mode=block',
  'X-Content-Type-Options' => 'nosniff'
}

恐怕没有这个办法。原因是

  1. 当 Rack 添加 X-Runtime header 到响应时,视图已经被渲染。这是显而易见的,因为如果不是,Rack 怎么知道视图渲染需要多长时间?所以你不能在服务器端将值插入到你的视图中。
  2. 在浏览器上 Javascript 开始 运行 时,包含 HTML 的响应已经被消费,响应的 headers已被抛出。所以你也不能在浏览器端将值插入到你的视图中。