ストロングパラメータ
マスアサインメント機能:複数のパラメータをまとめて登録・更新できる機能。
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