Railsでは、コントローラー内で、
request
メソッドにより、リクエストから値を取得することができます。response
メソッドにより、レスポンスに値を設定することができます。
動作確認
- Rails 4.1
目次
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の技