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分