ストロングパラメータ

マスアサインメント機能:複数のパラメータをまとめて登録・更新できる機能。

user = User.new(params[:user]) # 複数のパラメータの集合
user.save

マスアサインメント脆弱性:上の例で、params[:user]が改変されていた場合(adminなどのパラメータの追加など)でもそのままデータベースに保存されてしまう。

ストロングパラメータの設定

requireで必須のパラメータを、permitで許可されたパラメータを指定する。 想定しないパラメータの追加を防ぐ。

def create
  user = User.new(user_params)
  user.save
end

...

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