request.headers
?在视图中使用each
循环播放并不起作用。我也尝试了to_hash
方法也失败了。
以JSON格式查看哈希
对于echo动作,我有一个jbuilder模板,我想在其中打印所有请求标题:
json.request_headers request.headers
这给了我:ActionView::Template::Error (not opened for reading)
。对于params
哈希,同样的工作完美无瑕。
然后,在回声控制器中我这样做了:
incr=0
request.headers.each do |key, value|
logger.debug "Header #{ incr }: #{ key }, #{ value }"
incr += 1
end
它为我提供了一些HTTP标头,但也提供了一些机架和action_dispatch信息,例如Header 17: rack.version, [1, 3]
或Header 32: action_dispatch.parameter_filter, [:password]
,我对此并不感兴趣,我猜错了(文件没有打开)阅读)。
另外,在我的搜索中,我无法找到任何暗示request.headers
是什么(某种物体?)。有什么简单的方法来解决它?
答案 0 :(得分:2)
所有标准和自定义标头都以HTTP开头。这对我有用:
request.headers.each {|key,value|
logger.debug "#{key}='#{value}'" if key.start_with? "HTTP"
}
答案 1 :(得分:0)
response.headers 是一个哈希。您可以阅读有关回复here的更多信息。由于它是一个哈希,它应该回复.each
,如果没有,你应该用你得到的错误更新你的问题。
另外,请注意,您始终可以在对象上调用.class
来查找其类型。