読者です 読者をやめる 読者になる 読者になる

Rails Webook

自社のECを開発している会社で働いています。Rails情報やサービスを成長させる方法を書いていきます

Rails4でHTTPリクエストとHTTPレスポンスを取得・設定する方法

Rails初級 Rails Controller

Railsでは、コントローラー内で、

  • requestメソッドにより、リクエストから値を取得することができます。
  • responseメソッドにより、レスポンスに値を設定することができます。

動作確認

  • Rails 4.1

目次

  1. Railsでリクエストヘッダの内容を取得する
  2. Railsでリクエストヘッダの内容を取得する


Railsでリクエストヘッダの内容を取得する

コントローラー内でrequetメソッドを使うことでリクエストヘッダの情報を取得することができます。
よく使うリクエストヘッダには、アクセサメソッドが定義されています。

request.url
#=> "http://localhost:3000/products"

request.method
# => "GET"

request.user_agent
# => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36"


アクセサメソッドがないヘッダに対しては、request.envに対して、ハッシュのようにアクセス可能です。

request.env["HTTP_ACCEPT"]
# => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"


Railsでリクエストヘッダの内容を取得する

コントローラー内でresponse.headersにハッシュのようにアクセスすることで、レスポンスヘッダの情報を設定することができます。
response.headersに対して、ハッシュの

# Content-Typeをapplication/jsonにする
response.headers['Content-Type'] = 'application/json'


また、response.headersでレスポンスヘッダの内容を確認できます。

response.headers
# => {"X-Frame-Options"=>"SAMEORIGIN", "X-XSS-Protection"=>"1; mode=block", "X-Content-Type-Options"=>"nosniff", "Content-Type"=>"application/json"}


以上です。

参考文献

  • Rails3 レシピブック 190の技