裏での動きが知りたい
strongparameterはrails勉強していると、初心者が必ず学ぶ道ですが、最初の方はとりあえず同じDBとカラムを書いておけばいいや〜程度にしか思っていませんでした。しかし、最近勉強していると裏で起こっていることをしっかり説明できるようにしたいと考えるようになり、この記事を書くことに至りました。
strongparameterとは?
データを格納するカラムを制限し、不正データを防ぐ仕組み。同じみ書き方はこんな感じ。
#example_controller
def comic_params
params.require(:book).permit(:title, :author, :picture)
end
なんとなく、このように書くんだ、と教えられてきたから形式的に書いてきたけど。。。。。
このように書いて実際はデータがどうpostされるのか一連動作が知りたかった。。。。。
実はこんな形
params[:book][:title]
params[:book][:author]
params[:book][:picture]
bookがキー、titleやauthorがバリューです。さらにその中で。。。。。
params[:book] = {
title: "実際の値"
author: "実際の値"
picture: "実際の値"
}
今度はtitleがキーになり、バリューが実際の値として入ります。
#ターミナル
"book"=>{"title"=>"TT", "author"=>"tsutsumi", "picture"=>"example.jpg"}, "commit"=>"Create Book"}
ターミナルを見ても形は上のようにハッシュ形式で入っています。
ハッシュ形式についてはこちら
細かいけど重要かなと思いました。