強欲で謙虚なツボツボ

趣味の読書の書の方

備忘録(Ruby)

Ruby

params.require(:モデル).permit(:カラム)

Rails 4以降のストロングパラメータという新機能
フォームの入力などをPOSTで受け取る時のパラメータを制限するようなもので、予期せぬパラメータを受け取らないようなセキュリティとなる
controllerにて記述

# nameとemailを属性にもつUserモデルが定義済みだとする

# フォームで{ "name": "hoge"," email": "mail@mail.com", "password": "1234qwer" }がPOSTでsubmitされた場合

# その1: nameというパラメータしか受け取らない
def user_params
  params.require(:user).permit(:name)
end
=> {
  name: "hoge"
}

# その2: nameとemailというパラメータしか受け取らない
def user_params
  params.require(:user).permit(:name, :email)
end
=> {
  name: "hoge",
  email: "mail@mail.com"
}