学習[62,63,64]日目
本日の学習内容
ビューの作成(form_forによるフォームの作成)
前回までの段階でモデルとコントローラーの作成まで行ったので、今回はビューの実装から入っていきます。
上記のようにform_forを使用して新規作成フォームの作成を行いましたが、現在ではform_withの方が一般的とのことなので次回からはそちらを使用していきたいと思います。
次いで、こちらを元に下記のようにコントローラーの編集を行っていきます。
上記の実装にあたりStrongParameters及びparamsに関する理解やformからどのようにパラメーターがとんでいるかの理解が全くだったので復習にかなり時間を要していまいました。少し反省です。。
まず、ビューで作成したフォームの値がどのようにコントローラーに渡されているのかに関してですが、フォームで@モデル名でモデルを指定します。
フォーム下で作成するフォームコントールに関しても同様にモデル内のカラムを指定することで格納先を指定することが可能となります。
これによりフォームからの値の行き先を指定してあげることでボタンを押した際に値を引き渡す準備ができるようになります。
しかし、これだけでは値が一方的に引き渡されることになるだけの為、不正な値等が送られてきたときに必要のない値まで受け取ってしまうことになります。
その為、createアクションにて定義したparmsのrequireとpermit メソッドによって、受け取るリクエストパラメータの制御を行います。
require はハッシュに指定したキーが存在することを検証し、キーが存在すればその値を返します。つまり、「params.require(:group)」とした場合、:group がキーとして存在すれば「params[:group]」の値が返されます。そして、指定したキーが存在しない場合は例外 ActionController::ParameterMissing を raise します。
permit はハッシュから指定したキーだけを取り出します。指定しなかったキーがハッシュに含まれていても、戻り値にそれらの値は含まれません。
そしてcreateされるタイミングでモデルにて設定したvalidationの検証も実行されるのでそちらの条件の検証が行われることも注意しなければなりません。
本日の英単語
abbreviation:略語
以上で、数日間の学習内容をまとめを終了します。
感じたことは完全にわからなことを調べるうちにわからないことに必要な文章にわからない単語がある状態がループしてこちらもまとめるだけで不要な時間と労力を要してしまったのが反省点です。
今度から注意していかなければと思いました。
わからないところのわからないものはそういうものだと認識して次に進む必要性を感じました。
参照:https://www.pikawaka.com/rails/form_for#form_for
:https://www.sejuku.net/blog/13163#html
:https://ruby-rails.hatenadiary.com/entry/20140727/1406448610
:https://www.sejuku.net/blog/29763#params
form_withを必死に使用しましたが、rails -vで確認したら5.0.7.2の為、今回使用出来なかったform_withに関して(5.1以降のverで使用可能)
参照:https://web-camp.io/magazine/archives/17665
:https://techracho.bpsinc.jp/hachi8833/2017_05_01/39502