Rails ストロングパラメーターについて(require, permit)
ストロングパラメーター(require,permitメソッド)
コントローラーでパラメータを送る際に主に利用される仕組み。 送られてきたパラメータを安全にするための記述で、指定したキーを持つパラメーターのみを受け取る。
説明
#boards_controller.rb private def board_params params.require(:board).permit(:title, :body) end
上記のコードはストロングパラメーターで書いたもので、以下の2つを実現することができる。
- requireでPOSTで受け取る値のキーを設定(データのオブジェクト名を定める)
- permitで許可するバリューを設定 (変更を加えられる(保存の処理ができる)キーを指定)
これをあらかじめ設定しておくことで、params[:board][:title]やparams[:board][:body]は受け取ることができるが、params[:title]やparams[:body]は受け取ることができない。それはrequireでboardを指定しているからで、逆にカラムもtitle,bodyをpermitで指定しているため、それ以外は受け取れない。
これをしないと、データベースを不正に書き換えられる可能性がある。