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