はじめに
ストロングパラメーターと検索して出てくる記事の再追及をした結果ものすごく感動する事実を発見。
(あくまで初心者が感動した話です。😇)
そもそもストロングパラメーターとは?
指定したkeyをもつパラメーターのみを受け取るように制限するためのもの。
悪い人が悪巧みできるように登録できないようにするのが目的。という理解をしました。
設定しないと意図しないデータの更新をされてしまいます。
対象はparamsを使用したデータの登録、更新のみとのことでした。
##呼び出し方
devise_parameter_sanitizer.permit(:deviseの処理名, keys: [:許可するキー])
このようにbeforeアクションの後ろに書いてあげる。
deviseの処理名 | 役割 |
---|---|
:sign_in | ログインの処理を行う時 |
:sign_up | 新規登録の処理を行う時 |
:account_update | アカウント情報更新の処理を行う時 |
keysは、ビューに記述した各フォーム部品のname属性値を記入。
<具体的にどこのこと??>
新規登録する場合だと、app/view/devise/registrations/new.html.erbの中の対象となるpassword,email以外の項目となります。
(password,emailはデフォルトで設定されてる。)
どこに感動したのか??
さて、私がどこに感動したかというとまさに一個上の記載しました、”対象となるものはpassword,email以外の項目”という所!!
要するに、新規登録する項目にpsswordとemail以外の項目を設定していたらストロングパラメーターをつけてあげてね!ってことでした!!
なんとそういうことか。。。と感動した、というお話です。
そのため、新規登録以外でもログインをするときやアカウントの更新を行う際にpasswordとemail以外の入力項目を設定する場合はストロングパラメーターをつけてあげればGOODです!!
以上ここまでです!
何か間違っている箇所等ございましたらご指摘よろしくお願いします。