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で指定しているため、それ以外は受け取れない。

これをしないと、データベースを不正に書き換えられる可能性がある。