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

【Ruby On Rails】コントローラーのメソッドに直接APIを発行した際の引数の渡し方

以下コントローラーのメソッド

class Api::V1::AlbumsController < ApplicationController
  respond_to :json

  def get_params(selectedTags=["旅行", "観光"])
    if params[:tags].present?
      selectedTags = params[:tags]
    end
  end

end

デフォルトでselectedTags配列には["旅行", "観光"]が入るようにしている。 リクエスト時にtagを指定した場合は、その指定した値が入るようになっている。

以下、タグを指定した場合のリクエストURL

http://example.com/api/v1/albums/get_params?tags[]='テスト'&tags[]='test'

レスポンス例

BODY
[
  "'テスト'",
  "'test'"
]

タグを指定しない場合

http://example.com/api/v1/albums/get_params

レスポンス例

BODY
[
  "旅行",
  "観光"
]

ちなみに、routes.rbには以下のように記述しておく

get "api/v1/albums/get_params"

参考

Action Controller の概要 | Rails ガイド