実装
/app/controllers/application_controller.rb
class ApplicationController < ActionController::API
before_action :set_params
def set_params
params = {}
request.query_parameters.each do |key, value|
params[key] = value.to_s
end
@params = params
end
end
解説
10.1requestオブジェクト
以下、日本語訳&要約
・リクエスト オブジェクトには、クライアントから受信したリクエストに関する多くの有用な情報が含まれています。
・このオブジェクトでアクセスできるプロパティには次のようなものがあります。
パラメータ | 説明 |
---|---|
host | このリクエストに使用されるホスト名。 |
domain(n=2) | n右から始まるホスト名の最初のセグメント (TLD)。 |
format | クライアントによって要求されたコンテンツ タイプ。 |
method | リクエストに使用される HTTP メソッド。 |
get? / post? / patch? / put? / delete? / head? | HTTP メソッドが GET/POST/PATCH/PUT/DELETE/HEAD の場合は true を返します。 |
headers | リクエストに関連付けられたヘッダーを含むハッシュ。 |
port | リクエストに使用されるポート番号 (整数)。 |
protocol | 使用されるプロトコルに「://」を加えた文字列 (例: 「http://」)。 |
query_string | URL のクエリ文字列部分、つまり「?」以降のすべて。 |
remote_ip | クライアントの IP アドレス。 |
url | リクエストに使用される URL 全体。 |
10.1.1 path_parameters、query_parametersおよびrequest_parameters
以下、日本語訳&要約
・リクエストオブジェクトは、リクエストとともに送信されたすべてのパラメーターをハッシュで収集する。(クエリ文字列か、POST本文として送信されたかは関係ない)
・リクエストオブジェクトは、3つのアクセサーがある。
・query_parametersには、クエリ文字列の一部として送信されたパラメータが含まれている。
・request_parametersには、投稿本文の一部として送信されたパラメータが含まれている。
・path_parametersには、この特定のコントローラーとアクションにつながるパスの一部としてルーティングによって認識されたパラメーターが含まれている。
→ requestオブジェクトのquery_parametersメソッドでアクセスできる。