Ruby/RubyOnRails-日本語
Rails 一日一つメソッド (Day26) permitメソッド
아랑팡팡
2024. 2. 1. 18:34
728x90
Rails 一日一つメソッド (Day26) permitメソッド
permitメソッドとは?
- paramsで取得したパラメータに対して保存の許可処理を行うメソッドで、requireメソッドは特定のパラメータが paramsハッシュの中にあるかを確認する時に使われる。指定したパラメータが存在しない場合、ActionController::ParameterMissing例外が発生する。
permitメソッドを使う時 | |
User入力処理 | WebのFormを通過して提出したデータを処理する時 |
Model生成、Update | permitを使って特定のFiledだけをUpdateするようにしたい時 |
保安強化 | permitを使って許可されたFiledだけを処理して悪意を持ってUserのデータ送信を防げる。 |
パラメーター検証 | 目的のパラメータ キーを許可し、他のパラメータはフィルタリングして、不正な入力またはパラメータ エラーからアプリケーションを保護する時 |
バリデーション | Strong Parametersを使ってデータのバリデーション検査を行える。 |
params.permit(:キー名)
params.require(:モデル名).permit(:キー名)
params.require(:user).permit(:name, :age)
=>{ name: "Arang", age: 20 }
permitメソッドの使い方
- Controllerで使われる
def create
user_params = params.require(:user).permit(:name, :email, :password)
@user = User.new(user_params)
end
- params.require(:user) : userパラメータを必須として要求。
- permit(:name, :email, :password) : userパラメータで許可されているフィールドのみを選択的に許可する。
Strong Parameters
- Userが入力したデータが許可されているのかを制御する機能で、どんなパラメータを使えばアプリケーションでどんなパラメーターが許可されるか、許可されないかを指定できる。
user_params = params.require(:user)
requireメソッド
- paramsオブジェクトで特定のパラメーターを要求するメソッドで、パラメーターが要請にない場合、ActionController::ParameterMissing例外が発生する。
例)Userから :userパラメーターが必要な場合。
user_params = params.require(:user)
配列に対しての指定の仕方
- Valueに複数の値の場合は、配列パラメーターに処理できる
params.permit(キー: [])
例):addressハッシュパラメータの中に、:street, :city キーがある場合
address_params = params.require(:user).permit(address: [:street, :ciry])
728x90
반응형
LIST