0
0

More than 3 years have passed since last update.

ストロングパラメータ覚えづらい

Last updated at Posted at 2021-09-04

掲題の通りでヒィヒィ言ってる。
以下備忘録。

1. ストロングパラメータって何だっけ

意図しないDBの読み書きを防ぐのがストロングパラメータ。createアクションを元にフォームなどから送られてきたパラメータをレコードに保存するときに、受け取るパラメータを制限するもの。

params.require(:モデル名).permit(:キー名, :キー名.....)

このように指定していく。例えば、modelというモデルでやりとりできるデータベースに{sample1:"hogehoge",sample2:"fugafuga"}というレコードがあるとして

params.require(:model)
 #=> {sample1:"hogehoge",sample2:"fugafuga"}
params.require(:model).permit(:sample2)
 #=> {sample2:"fugafuga"}

上記のようなことが起こる。params.requireの内容からキーを指定すると、指定したもの以外のキーは一切受け付けなくなる。

2. なんで必要か

要するに、書き換えられたくないカラムを書き換えられないようにしなければならないために設定するもの。
Mass assignment 脆弱性がキーワードとなる。

関連記事

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