imotanの気になる木

21歳、大学4年(未就活)の意識高い系の大学生の日記的ブロクです。

require と permit の使い方がよく分からない

そもそもセキュリティを高めるための機能

rails5系が出てくる中で、rails4系リリース時で話題になったストロングパラメーターの話をするのは、非常にダサいですが、rails初心者であれば、つまづきがちなrequireとpermitの話をします。

具体的にいうとこれです

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

createの際に送られて来たものをparamsで取得 中身はこんな感じです

{
  "action" : "create",
  "user" : {
    "name" : "aaa",
    "email" : "bbb"
  },
  "controller" : "users"
}

返り値を見ると controller 名や action 名などもパラメータに含まれていることが分かります

params.require( :user ) の中身を確認

{ "name" : "aaa", "email" : "bbb" }

余談ですが、、、

params.require( :controller ) とすれば "users" が取得できます。

params.require( :action ) とすれば "create" が取得できます。

permit メソッドは許可したいパラメータだけをフィルタしてくれます。