在Ruby on Rails中读取头数据。

133
我正在制作一个API,其中Facebook登录的访问令牌将通过标头数据发送。
我该如何从标头中读取这些数据?

3
搜索关键词:“rails header request”。 - Sergio Tulentsev
21
正是因为这个原因才把我带到了这里。 - YoTengoUnLCD
3个回答

202
request.headers["Content-Type"] # => "text/plain"

将"Content-Type"替换为您想要读取的标头名称。

Rails 4.2更新

有两种方法可以在Rails 4.2中获取它们: 旧方式(仍然有效):

request.headers["Cookie"]

新方式:

request.headers["HTTP_COOKIE"]

获取一个包含请求所有标头的 Hash。

request.headers

为什么这里会提到新旧方式?我今天没有找到“新方式”的文档;最好引用官方来源 - Curious Sam

31

Rails现在会将HTTP头部附加到请求中,并将其转换为全大写,所以现在它应该是:

Rails现在会将HTTP_附加到头部,同时将其转换为全大写,因此现在应该是:

request.headers["HTTP_CONTENT_TYPE"]

1
我有钱说这是 Rack 而不是 Rails。但我可能错了。 - j_mcnally

-12

要获取控制器中实际 http 头的哈希,请使用 @_headers


6
直接访问实例变量是一种很不好的形式。下划线的存在提醒我们不要这样做。 - tadman
1
一般来说,每当您访问在该类(或模块)中未明确设置的实例变量时...您可能正在做一些危险的事情。 - Dan Leyden

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接