コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

RailsにてJSONでPOSTリクエストされた場合に、ハッシュではなくJSONそのものを扱いたい時

受け取ったJSONをそのまま別のところに受け流す、みたいな処理の時に取る手法に関してググってもストレートヒットしなかったのでメモ。

環境

rails (5.2.0)

経緯

こんなJSONをPOSTで受け取るエンドポイントがあった場合

{
  "title": "タイトル",
  "body": "こんにちわ",
}

Rails上ではよしなに params の配列に入れてくれるので params["key名"] で取得できるようにしてくれる。

params["title"]
# => "タイトル"

しかし、仮にJSONのstirngそのものが欲しい場合はどうするか?という場合。

やり方と例

request.body.read を使う。そうするとbodyまんまのStringが取得できる

参考リンク