Lire les données d'en-tête dans Ruby on Rails

94

Je crée une API où le jeton d'accès pour la connexion Facebook sera envoyé via les données d'en-tête.

Comment lire ces données depuis l'en-tête?

Abhilash
la source
3
Mots clés de recherche: "demande d'en-tête de rails".
Sergio Tulentsev
15
@SergioTulentsev C'est exactement ce qui m'a conduit ici.
YoTengoUnLCD

Réponses:

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

remplacez "Content-Type" par le nom de l'en-tête que vous souhaitez lire.

Mise à jour pour Rails 4.2

Il y a 2 façons de les obtenir dans Rails 4.2: Ancienne méthode (fonctionne toujours):

request.headers["Cookie"]

Nouvelle façon:

request.headers["HTTP_COOKIE"]

Pour obtenir un hachage avec tous les en-têtes de la requête.

request.headers
Eduard
la source
21

Rails attache maintenant HTTP_ à l'en-tête et le convertit en majuscules pour qu'il soit maintenant:

request.headers["HTTP_CONTENT_TYPE"]
louveteau
la source
J'ai de l'argent qui dit que le rack ne fonctionne pas. pourrait se tromper tho
j_mcnally
-7

Pour obtenir le hachage des en- têtes http réels, utilisez le @_headerscontrôleur.

BitOfUniverse
la source
4
Accéder directement à des variables d'instance comme celle-ci est une très mauvaise forme. Ce trait de soulignement est là pour vous rappeler de ne pas faire cela.
tadman