ストロングパラメーターについて
フォームから値を送信したいのにDBに保存されない・・・
そんなときにみるポイントの一つがストロングパラメーターです。
ストロングパラメーターとはざっくりいうとセキュリティーのことです。
まず、ビューのフォームで入力された値はparams
でコントローラーに送られます。
その際に許可していない不正のparams
を受け取らないようにするのがストロングパラメーターになります。
メリットとして、意図しないデータを受け取らないようにできることや、管理者のみ変更できるデータの変更を外部から変更されることを防ぐなどがあります。
以下、ストロングパラメーター例文
tweets_controller.rb
def tweet_params
params.require(:tweet).permit(:text,:image)
end
今回はtweets_params
というメソッドでストロングパラメーターを定義しています。
require
の部分で何の値を受け取るのか、
permit
はrequire
で指定した値の中からどのカラム値を許可するのかどうかを定義しています。
今回の場合tweetsテーブルのtextカラム,imageカラムのみ受け取るという状態になります。
セキュリティーとして非常に大切なものになりますが、受け取りたい値の誤字、脱字によってDBに保存されないことが起こりうるので、気をつけて使いましょう。