LoginSignup
0
0

【Rails】APIのコントローラでparamsを受け取る方法

Posted at

実装

/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メソッドでアクセスできる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0