LoginSignup
7
4

More than 3 years have passed since last update.

Content-Type: application/jsonでPOSTする

Last updated at Posted at 2020-04-12

はじめに

JSON形式でPOSTをしたときに、どのようにパラメータが送られるのかをまとめます。

POST

usersコントローラーへパラメーターを送ります。

$ curl -X POST -H "Content-Type: application/json" -d '{"name": "hoge", "email": "mail@example.com"}' http://localhost:3000/users

すると、パラメーターは次のようになります。

Parameters: {"name"=>"hoge", "email"=>"mail@example.com", "user"=>{"name"=>"hoge", "email"=>"mail@example.com"}}

これ、送ったパラメーターをコントローラー名で勝手にネストしてくれているそうです。
そうすることで、railsではparams[:user][:name]という形でパラメーターを使うことができていたんですね!

userでネストされていないパラメーターも使うことができます。
しかし、セキュリティの観点からも使用しないほうが良さそうですね。
ストロングパラメータではせっかくモデル名を指定して例外のパラメータを除外しているので、それに乗るのがいいでしょう!

参考
https://railsguides.jp/action_controller_overview.html

Qiitaの下書きに残したまま忘れていたので今投稿します

7
4
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
7
4