はじめに
WebからPostリクエストやPatchリクエストによって送られきた情報はparamsの中のモデルの中の値のように入れ子構造になって格納され、サーバーに渡される。
app/controllers/posts_controller.rb
def post_params
# params[:post][:content]のように階層構造になっている
params.require(:post).permit(:content)
end
これだけのコードだが、一つずつ読み解いていく。
使用環境は以下の通りである。
No | 項目 | 内容 |
---|---|---|
1 | OS | Mac |
2 | Ruby | 2.6.3 |
3 | rails | 6.0.4 |
目次
1.requireとは
2.permitとは
3.ストロングパラメータとは
4.まとめ
1. requireとは
params.require(:post) で、paramsに渡すモデルを指定する。
2. permitとは
params.permit(:content) で、paramsに渡すキーを指定する。
ちなみに、これらの指定はストロングパラメータと呼ばれる。
参考元
3. ストロングパラメータとは
本当に必要な情報のみをWeb上でやり取りすることができるように設定すること。
これにより、admin権限の改ざんなど、悪質な行為を制御できる。
4. まとめ
params.require(:post).permit(:content)
で、paramsに渡すモデルを:post
、キーを:content
に指定する。
これにより、params[:post][:content]
に値が渡される。