3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Rails Strong Parameterとは

Last updated at Posted at 2021-08-04

Strong Parameterとは

Rails には、ストロングパラメーター(Strong Parameter)という、ユーザーから送信されるデータを制限する機能があります。
この仕組みを使うことで、安全では無いデータの登録・更新を防いでくれます。

ストロングパラメータの書き方

  1. 基本構文
user_controller.rb
private
def user_params
  params.require(:キー(モデル名)).permit(:カラム名1,:カラム名2,・・・).merge(カラム名: 入力データ)
end
user_controller.rb

class UsersController < ApplicationController
  # (中略)

  private 

    def user_params
      params.require(:user).permit(:name, :email, :password,:password_confirmation)
    end
end

***メソッド名には[ モデル名_params ]***とするのが一般的です。

reqireメソッドとparmitメソッド

基本的には、require と permit の使い方さえわかっておけば大丈夫です。

require: 受け取る値のキーを設定
permit: 許可するカラムを設定

上の場合はパラメーターの :userというキーの中の:name, :email,:password,:password_confirmationだけを許可する設定にしました。

つまりパラメーターとしての :name, :email, :password,:password_confirmation4つだけデータの作成・更新を許可する といった内容になっています。

ストロングパラメーターを使わずに、そのままユーザーから送られてきた値を使ってデータを作ったり、更新しようとすると、ユーザーに書き換えられたくない値まで書き換えられてしまうという問題が起きてしまいます。

他にもprivateメソッドmergeメソッドもあります。

ストロングパラメータの呼び出し方

丸投げパターン

user_controller.rb
def create
    User.create(user_params)
  end

ストロングパラメータに全てお任せパターンです。」

資料

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?