LoginSignup
1
3

More than 3 years have passed since last update.

新規登録のストロングパラメーターに新たなキーを追加する方法について

Last updated at Posted at 2019-06-02

1ストロングパラメーターとは?

ストロングパラメータとは、
ユーザーがビューで入力した特定の情報が、コントローラーへ送られて、それがパラメータとして安全に受け取らせるための仕組みをいう。

これは、ストロングパラメータにおいて、予め設定された情報以外は、コントローラーに受け取らせないというセキュリティ的役割を担っている。(MassAsignmentの脆弱性を突く攻撃に対処するための仕組みをいう。これは、
フォームが送信するparamsの内容を改ざんするなどして、開発者が意図していないデータをDBに保存させる攻撃のこと。)

ストロングパラメーターの編集する意味

これは、deviseというgemをインストールすることで、設定することができる。
その場合、ストロングパラメータの初期設定としては、メールアドレスパスワードのみを受け取るようにストロングパラメーターが設定してある。
そのため、新しいキーをコントローラに受け取らせるためには、ストロングパラメーターを編集しなければならない。

2ストロングパラメーターの編集方法

ストロングパラメーターを編集方法としては、Railsのcontroller/application_controllerにおいて、before_actionconfigure_permitted_parametersメソッドを設定する。

class ApplicationController < ActionController::Base

    protect_from_forgery with: :exception
    before_action :configure_permitted_parameters, if: :devise_controller?

    def configure_permitted_parameters
      devise_parameter_sanitizer.permit(:ストロングパラメーターを追加したいアクション名, keys: [:追加するキー])
    end
end

たとえば、名前というキーをパラメーターを追加したい場合は、以下のように記述する。

class ApplicationController < ActionController::Base

    protect_from_forgery with: :exception
    before_action :configure_permitted_parameters, if: :devise_controller?

    def configure_permitted_parameters
      devise_parameter_sanitizer.permit(:sign_up, keys: [:name])
    end
end

                                   以上

1
3
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
1
3