AR삽질러

Rails 一日一つメソッド (Day13) require、permitメソッド 본문

Ruby/RubyOnRails-日本語

Rails 一日一つメソッド (Day13) require、permitメソッド

아랑팡팡 2024. 1. 2. 21:41
728x90

 

Rails 一日一つメソッド (Day13) require、permitメソッド

 

require, permitメソッドは、railsでDBを更新する時に、不要なパラメータを取り除くために使う。

 

1. requireメソッド

 - Strong Parametersの一部で、paramsから取ってくるデータのオブジェクト名を指定する。

役割 使用目的 動作方法
paramsハッシュで特定のキーを必須で要求する。 フォーム データやAPI リクエストにおいて、特定のデータ オブジェクトが必ず存在することを保証するために使用。 必要ばキーが 'params' ハッシュに存在しない場合、'ActionController::ParamaterMissing' エラーを発生する。
params.require(:user)
def user_params
	params.require(:user)
end

requireメソッド

 - Clientから受けた 'params' Hashで ':user' キーを探す。

:user

 - キーはフォーム データやAPI リクエストでユーザー情報を含めるルート要素。

 - :user キーがない場合 'ActionController::ParameterMissing' エラーを発生する。

result

 - :user キーがあるかを検証し、必須で要求してデータを制御する。

 


2. permitメソッド

 - Strong Parametersの一部で、paramsから取ってくるデータのキーを指定する。

役割 使用目的 動作方法
指定されたキー中の下のパラメータの中で許可されたフィールドだけをフィルタリングする。 Clientが送信したデータの中で安全に使うことができるフィールドだけを選ぶ。 permitで指定されたフィールド(:name, :email) などオブジェクトに割り当てられる。
params.require(:user).permit(:name, :email)
permit(:name, :email, :password, :password_confirmation)

permitメソッド

 - :user キーの中に含まれているパラメータの中で、明示的に許可されたフィールド(:name, :email, :password, :password_confirmation)のみを選択する。

 


3. requireメソッド、permitrequireメソッドの違い

 - requireメソッド、permitrequireメソッドは一緒に使われる。特定のデータをオブジェクトの存在を保証しその内部の安全なフィールドだけを選ぶ。

例)

params.require(:user).permit(:name, :email)

require(:user)

 - :user キーの存在を確認する。

permit(:name, :email)

 - (:name, :email) で :user オブジェクトの中で安全なフィールドを選ぶ。

 

 

 

 

728x90
반응형
LIST