アウトプット10/18
<今日のカリキュラム>
・Ruby on rails エラー修正
・メモ投稿機能のフロント側を非同期通信で実装
<メソッド整理など>
・FormData
フォームに入力した値を取得できるJSのオブジェクト。
・insertAdjacentHTML
指定したHTMLを特定の要素に挿入できるメソッド。非同期通信により、指定のHTML要素を大元のHTMLに挿入処理することによって更新しなくても投稿内容が反映できるようになる。
・API
Application Programming Interfaceのこと。アプリ同士でデータのやりとりを行うルールのこと。HTMLなどのビューファイルのやりとりを行うのではなく、あくまでデータのやりとりを行うことが特徴。
<分かっていなかったこと>
・devise_parameter_sanitizerメソッド
deviseGem時に自分で新しく設定したカラムもストロングパラメーターに含めることが可能。application_controller.rbに記載する。
・ストロングパラメーター
指定したキーのみをもつパラメーターのみを受け取るように制限するもの。
・requireメソッド
保存をする際はストロングパラメータで値の許可をする必要がある。ストロングパラメータで二重ハッシュの中身を保存したい場合には、requireとpermitメソッドを使う。
・permitメソッド
取得したいキーを指定するときに使う。
params.require(:モデル名).permit(:キー名, :キー名)
と記述。requireメソッドと組み合わせることで、対象のモデルから取得したいキーを指定することができる。
<理解していないこと>
・「placeholder」は、文字をうっすら表示する時に利用
・送信ボタンの実装
・references型/外部キー制約
中間テーブルのマイグレーションファイルに記述する。
t.references :room, foreign_key: true
t.references :user, foreign_key: true
・ルーティングのネスト
・mergeメソッド
・N+1問題
・fill_inメソッド
・have_selector,have_contentの違い
指定したセレクタがあるかないかを判断するマッチャがhave_selector。have_contentは指定した文字列があるかどうかを判断するマッチャ。
・クラスメソッドとインスタンスメソッド
クラスメソッドではインスタンス変数(@〇〇)が使えない。
・sliceメソッドとslice!メソッド
array.slice(1) →配列の中から1番目の数値を取り出す。但し配列に影響はない。
array.slice!(1) →配列の中から1番目の数値を取り出す。取り出した数値は配列から削除される。
・afterメソッド
任意の処理の後に指定の処理を実行するメソッド。テストコードでFactoryBot後に画像を保存するコードを作るときなどに使用する。
・requireメソッド
ライブラリやクラスを読み込むための記述
・whileメソッド
無限ループを作るメソッド。条件式が真である間は処理を繰り返す。
・DOM
ドキュメントオブジェクトモデルのこと。 HTMLを解析し、データを作成する仕組み。JavaScriptではHTMLを階層として捉えて変換したデータと捉え、そのHTMLの階層を取得し、操作することでプログラムを動かす言語。
<気付き>
レッスン4を終えられなかったのが残念。また来週から一週間がんばろう。