【ストロングパラメーターについて】
背景
既存のフォームに、新たに「所属」入力フォームを追加し、値を送信しようとしたがバリデーションがかかって値を渡せず詰まったのでメモ。
質問をすると、
「ストロングパラメータってオチじゃないですか? rails tutorial 第7章 7.3.2を見ると何か発見があるかもしれません。」
とのこと。
https://railstutorial.jp/chapters/sign_up?version=5.1#sec-signup_form
以下抜粋。
paramsハッシュでは:user属性を必須とし、 名前、メールアドレス、パスワード、パスワードの確認の属性をそれぞれ許可し、 それ以外を許可しないようにしたいと考えています。 これを行うには、次のように記述します。 params.require(:user).permit(:name, :email, :password, :password_confirmation)
試してみると、そのオチでした。。
ストロングパラメーターとは簡単に言うと、 ビューからコントローラーに、安全に値を渡すための仕組み。 丸々フォームの値を渡すとセキュリティ上良くないので、許可(permit)したものだけ渡すように設定している。
コントローラーのpermit内で 送信したい属性を追加すると値を送信出来ました。