ino-akiのブログ

ITエンジニアを目指して学習したことをアウトプットするブログ

ストロングパラメーター

ストロングパラメーター

Railsで使われるセキュリティ機構で

コントローラー内で指定されたパラメーターのみを許可する

これにより、意図しないパラメーターの受け入れなどを防ぐ

Railsのアプリにおいてデータの保存や変更を行う際には

ストロングパラメーターを用いることが定石になる

ストロングパラメーターの定義には

requireメソッドと、permitメソッドを組み合わせて使用する

 

require(リクワイア)メソッド

送信されたパラメーターの情報を持つparamsが、使用できるメソッド

ストロングパラメーターとして使用する場合は、主にモデル名を指定する

例:params.require(:モデルのファイル名)

取得したい情報を指定できるので、意図しないパラメーターではエラーを返す

requireメソッドによって必要なパラメーターのほとんどを取得できますが

より意図したものだけに制限するため、permitメソッドを使用して

カラムに保存したいデータのみに絞る

 

permit(パーミット)メソッド

paramsが使用できるメソッド

permitメソッドを使用すると、取得したいキーを指定できる

例:params.require(:モデルのファイル名).permit(:キー名, :キー名)

params.requireの内容からキーを指定すると

それ以外のキーがあっても値を受け付けない

 

例:params.require(:question).permit(:title, :content, :name)

questionというキーを持つパラメーターを要求
その中の"title"、"content"、"name"というキーを許可
詳細に指定して取得したいキーだけを安全に抽出する