10000hの技術メモ

この先生きのこるための勉強内容&時間記録

Ruby on Rails Ⅲ 2章 scaffoldのコードに近付けよう(1)〜セッターを省略しよう・ストロングパラメータ

20170226@home Progate | プログラミングの入門なら基礎から学べるProgate[プロゲート]

目次

セッターを省略しよう

scaffoldで作ったコードではセッターが使われていない、なぜか。

→newメソッドの引数にハッシュを取っているから。

@note = Note.new(title: params[:title], content: params[:content])

といった具合。

ストロングパラメータ

↑でセッターを省略できたはいいが、titleとかcontentとかをそれぞれセットするのはめんどくさい。まとめて受け取って、まとめてセットできるほうが嬉しい。

悪いやり方

<input name = "note[title]">
<textarea name = "note[content]">

に変更して、コントローラは

@note = Note.new(params[:note:)

で受け取る。

これだとどんな値でもセットできてしまい、セキュリティ的に禁止されている。

そこでストロングパラメータ。

ストロングパラメータの使い方

params.require(paramsのキー).permit(保存を許可するカラム1,  保存を許可するカラム2, ...)

今回の勉強時間:20分 累計勉強時間:8時間15分