Closed1
【Rails】Strong Parameter

- コントローラーで許可された属性だけを明示的に許可する仕組み
- 指定した属性のみを更新できるようにすることで不正な属性の更新を防止できる
# bad: すべての params を許可してしまう(危険!)
@user = User.new(params[:user])
# good: permit で許可するキーだけを指定
@user = User.new(user_params)
private
def user_params
params.require(:user).permit(:name, :email, :password, :password_confirmation)
end
- params.require(:user) で必須のキーがなければ例外(ActionController::ParameterMissing)を投げ、早期にエラー検知ができる
- permit(...) で許可したキー以外は捨てられるため、「意図しない属性が混入していた」場合も自動的に無視される
このスクラップは4ヶ月前にクローズされました