Membaca data header di Ruby on Rails

97

Saya membuat API di mana token akses untuk login Facebook akan dikirim melalui data header.

Bagaimana cara membaca data ini dari header?

abhilash
sumber
3
Kata kunci pencarian: "rails header request".
Sergio Tulentsev
16
@SergioTulentsev Persis yang membawa saya ke sini.
YoTengoUnLCD

Jawaban:

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

ganti "Content-Type" dengan nama header yang ingin Anda baca.

Pembaruan untuk Rails 4.2

Ada 2 cara untuk mendapatkannya di Rails 4.2: Cara lama (masih berfungsi):

request.headers["Cookie"]

Jalan baru:

request.headers["HTTP_COOKIE"]

Untuk mendapatkan Hash dengan semua header permintaan.

request.headers
Eduard
sumber
22

Rails sekarang melampirkan HTTP_ ke header serta mengonversinya menjadi huruf besar semua sehingga sekarang menjadi:

request.headers["HTTP_CONTENT_TYPE"]
kubus
sumber
Saya punya uang yang mengatakan rak apakah ini tidak rel. bisa jadi salah tho
j_mcnally
-7

Untuk mendapatkan hash dari header http aktual, gunakan @_headerspengontrol.

BitOfUniverse
sumber
4
Mengakses variabel instan seperti ini secara langsung adalah bentuk yang sangat buruk. Garis bawah itu ada sebagai pengingat untuk tidak melakukan ini.
tadman