アウトプット11/10
<今日のカリキュラム>
・最終課題のデータベース設計
<メソッド整理など>
・データベース設計は、ER図を書いてREADME.mdに記載する。
・has_one
1対1のアソシエーションを記載するときに使う。
<分かっていなかったこと>
・references型/外部キー制約(2回目!)
中間テーブルのマイグレーションファイルに記述する。
t.references :room, foreign_key: true
t.references :user, foreign_key: true
<理解していないこと>
・fill_inメソッド
・have_selector,have_contentの違い
指定したセレクタがあるかないかを判断するマッチャがhave_selector。have_contentは指定した文字列があるかどうかを判断するマッチャ。
・sliceメソッドとslice!メソッド
array.slice(1) →配列の中から1番目の数値を取り出す。但し配列に影響はない。
array.slice!(1) →配列の中から1番目の数値を取り出す。取り出した数値は配列から削除される。
・afterメソッド
任意の処理の後に指定の処理を実行するメソッド。テストコードでFactoryBot後に画像を保存するコードを作るときなどに使用する。
・DOM
ドキュメントオブジェクトモデルのこと。 HTMLを解析し、データを作成する仕組み。JavaScriptではHTMLを階層として捉えて変換したデータと捉え、そのHTMLの階層を取得し、操作することでプログラムを動かす言語。
javascriptからAjaxによるリクエストを送るためのオブジェクトのこと。
・renderメソッド
JSON形式でデータをサーバーから返却する際には、
render json:{ post: post}
とcreate定義に記載する。
・onload
XMLHttpRequestで定義されているプロパティで、レスポンスの受信が成功した場合に呼び出されるイベントハンドラーのこと。
・セッションとクッキー
webサービスにおいて情報を一時的に保存しておく仕組み。セッションがハッシュの形式でクッキーという保存場所に保存される。
・before_action
コントローラーで処理が被っているときに使用する。具体的には、同じ記述を別のメソッドで定義し、アクションの実行前にbefore_actionを実行させることで記述内容の重複を避ける。
・テーブルにカラムを追加
rails g migration Addカラム名Toテーブル名 追加するカラム型:型
・<em>タグ
斜線で強調するタグ
・devise_parameter_sanitizerメソッド(2回目!)
deviseにおけるparamsのようなもの。deviseGem時に自分で新しく設定したカラムもストロングパラメーターに含めることが可能(nicknameなど)。application_controller.rbに記載する。
・mergeメソッド(2回目!)
ハッシュを結合させるメソッド。使い方は、投稿に関するハッシュとログインユーザーのハッシュを結合させて、投稿とユーザーを紐つけるときに使う。
・N+1問題(2回目!)
アソシエーションによる該当箇所への複数アクセスが起こってしまう問題。解決策はincludesメソッドによる該当モデルの一括取得(コントローラーに「モデル名.includes(:紐付くモデル名)」と記述。)。
・case文
ifを使わない条件分岐
case 対象のオブジェクトや式
when 値1
# 値1に一致する場合に実行する処理
when 値2
# 値2に一致する場合に実行する処理
else
# どれにも一致しない場合に実行する処理
end
・whereメソッドとLIKE句
「c」が含まれるタイトルの検索方法は、
where('title LIKE(?)', "%c%")
検索機能の実装で使うメソッドでモデルに記述する。
・ルーティングのネスト(2回目!)
あるモデルと紐ついている別のモデルのid情報をパラメーターに含めるためにネストさせる。
resources :親となるコントローラー do
resources :子となるコントローラー
end
・rails_12factor
Herokuでデプロイする場合に必要。Gemfileに以下の記述を追加し、 bundle installする。
group :production do
gem 'rails_12factor'
end
・heroku addons:add cleardb
herokuのデフォルトデータベースはPostgreSQLというデータベースなのでMySQLに変更するため
<気付き>
デプロイとBASIC認証まで行って今日はデータベース設計。めっちゃ頭使う。
中間テーブルを使う構造とは思えなかったんだけどどうなんだろう。明日のレビューを待とう。
アウトプット11/8
<今日のカリキュラム>
・最終課題導入
<メソッド整理など>
・Rubocop
rubyを自動調整してくれるツール
<分かっていなかったこと>
<理解していないこと>
・references型/外部キー制約
中間テーブルのマイグレーションファイルに記述する。
t.references :room, foreign_key: true
t.references :user, foreign_key: true
・fill_inメソッド
・have_selector,have_contentの違い
指定したセレクタがあるかないかを判断するマッチャがhave_selector。have_contentは指定した文字列があるかどうかを判断するマッチャ。
・sliceメソッドとslice!メソッド
array.slice(1) →配列の中から1番目の数値を取り出す。但し配列に影響はない。
array.slice!(1) →配列の中から1番目の数値を取り出す。取り出した数値は配列から削除される。
・afterメソッド
任意の処理の後に指定の処理を実行するメソッド。テストコードでFactoryBot後に画像を保存するコードを作るときなどに使用する。
・DOM
ドキュメントオブジェクトモデルのこと。 HTMLを解析し、データを作成する仕組み。JavaScriptではHTMLを階層として捉えて変換したデータと捉え、そのHTMLの階層を取得し、操作することでプログラムを動かす言語。
javascriptからAjaxによるリクエストを送るためのオブジェクトのこと。
・renderメソッド
JSON形式でデータをサーバーから返却する際には、
render json:{ post: post}
とcreate定義に記載する。
・onload
XMLHttpRequestで定義されているプロパティで、レスポンスの受信が成功した場合に呼び出されるイベントハンドラーのこと。
・セッションとクッキー
webサービスにおいて情報を一時的に保存しておく仕組み。セッションがハッシュの形式でクッキーという保存場所に保存される。
・before_action
コントローラーで処理が被っているときに使用する。具体的には、同じ記述を別のメソッドで定義し、アクションの実行前にbefore_actionを実行させることで記述内容の重複を避ける。
・テーブルにカラムを追加
rails g migration Addカラム名Toテーブル名 追加するカラム型:型
・<em>タグ
斜線で強調するタグ
・devise_parameter_sanitizerメソッド(2回目!)
deviseにおけるparamsのようなもの。deviseGem時に自分で新しく設定したカラムもストロングパラメーターに含めることが可能(nicknameなど)。application_controller.rbに記載する。
・mergeメソッド(2回目!)
ハッシュを結合させるメソッド。使い方は、投稿に関するハッシュとログインユーザーのハッシュを結合させて、投稿とユーザーを紐つけるときに使う。
・N+1問題(2回目!)
アソシエーションによる該当箇所への複数アクセスが起こってしまう問題。解決策はincludesメソッドによる該当モデルの一括取得(コントローラーに「モデル名.includes(:紐付くモデル名)」と記述。)。
・case文
ifを使わない条件分岐
case 対象のオブジェクトや式
when 値1
# 値1に一致する場合に実行する処理
when 値2
# 値2に一致する場合に実行する処理
else
# どれにも一致しない場合に実行する処理
end
・whereメソッドとLIKE句
「c」が含まれるタイトルの検索方法は、
where('title LIKE(?)', "%c%")
検索機能の実装で使うメソッドでモデルに記述する。
・ルーティングのネスト(2回目!)
あるモデルと紐ついている別のモデルのid情報をパラメーターに含めるためにネストさせる。
resources :親となるコントローラー do
resources :子となるコントローラー
end
・rails_12factor
Herokuでデプロイする場合に必要。Gemfileに以下の記述を追加し、 bundle installする。
group :production do
gem 'rails_12factor'
end
・heroku addons:add cleardb
herokuのデフォルトデータベースはPostgreSQLというデータベースなのでMySQLに変更するため
<気付き>
昨日のオリジナルアプリが消えたのはショックだったけれど、おかげでフリマアプリ作成時にはGitHubをすごく注意して使えている。とりあえず今日はデプロイまで完了。
やっぱりオリジナルアプリの作成が力になっていると実感。今週も頑張ろう。
アウトプット11/7
<今日のカリキュラム>
・自主アプリ作成
・rubyドリル
<メソッド整理など>
<分かっていなかったこと>
・ルーティングのネスト(2回目!)
あるモデルと紐ついている別のモデルのid情報をパラメーターに含めるためにネストさせる。
resources :親となるコントローラー do
resources :子となるコントローラー
end
・rails_12factor
Herokuでデプロイする場合に必要。Gemfileに以下の記述を追加し、 bundle installする。
group :production do
gem 'rails_12factor'
end
・heroku addons:add cleardb
herokuのデフォルトデータベースはPostgreSQLというデータベースなのでMySQLに変更するため
<理解していないこと>
・references型/外部キー制約
中間テーブルのマイグレーションファイルに記述する。
t.references :room, foreign_key: true
t.references :user, foreign_key: true
・fill_inメソッド
・have_selector,have_contentの違い
指定したセレクタがあるかないかを判断するマッチャがhave_selector。have_contentは指定した文字列があるかどうかを判断するマッチャ。
・sliceメソッドとslice!メソッド
array.slice(1) →配列の中から1番目の数値を取り出す。但し配列に影響はない。
array.slice!(1) →配列の中から1番目の数値を取り出す。取り出した数値は配列から削除される。
・afterメソッド
任意の処理の後に指定の処理を実行するメソッド。テストコードでFactoryBot後に画像を保存するコードを作るときなどに使用する。
・DOM
ドキュメントオブジェクトモデルのこと。 HTMLを解析し、データを作成する仕組み。JavaScriptではHTMLを階層として捉えて変換したデータと捉え、そのHTMLの階層を取得し、操作することでプログラムを動かす言語。
javascriptからAjaxによるリクエストを送るためのオブジェクトのこと。
・renderメソッド
JSON形式でデータをサーバーから返却する際には、
render json:{ post: post}
とcreate定義に記載する。
・onload
XMLHttpRequestで定義されているプロパティで、レスポンスの受信が成功した場合に呼び出されるイベントハンドラーのこと。
・セッションとクッキー
webサービスにおいて情報を一時的に保存しておく仕組み。セッションがハッシュの形式でクッキーという保存場所に保存される。
・before_action
コントローラーで処理が被っているときに使用する。具体的には、同じ記述を別のメソッドで定義し、アクションの実行前にbefore_actionを実行させることで記述内容の重複を避ける。
・テーブルにカラムを追加
rails g migration Addカラム名Toテーブル名 追加するカラム型:型
・<em>タグ
斜線で強調するタグ
・devise_parameter_sanitizerメソッド(2回目!)
deviseにおけるparamsのようなもの。deviseGem時に自分で新しく設定したカラムもストロングパラメーターに含めることが可能(nicknameなど)。application_controller.rbに記載する。
・mergeメソッド(2回目!)
ハッシュを結合させるメソッド。使い方は、投稿に関するハッシュとログインユーザーのハッシュを結合させて、投稿とユーザーを紐つけるときに使う。
・N+1問題(2回目!)
アソシエーションによる該当箇所への複数アクセスが起こってしまう問題。解決策はincludesメソッドによる該当モデルの一括取得(コントローラーに「モデル名.includes(:紐付くモデル名)」と記述。)。
・case文
ifを使わない条件分岐
case 対象のオブジェクトや式
when 値1
# 値1に一致する場合に実行する処理
when 値2
# 値2に一致する場合に実行する処理
else
# どれにも一致しない場合に実行する処理
end
・whereメソッドとLIKE句
「c」が含まれるタイトルの検索方法は、
where('title LIKE(?)', "%c%")
検索機能の実装で使うメソッドでモデルに記述する。
<気付き>
せっかく自主アプリをそこそこの形までにしたのにgithubでマージをしないままマスターをheroku処理をしてしまって消えてしまった。
折角作ったのに徒労感がすごいけど、gitのマージ忘れの怖さがわかったということにしておく。
多分最初からリモートに紐づいていなかったのが原因だと思う。
アウトプット11/5
<今日のカリキュラム>
・自主アプリ作成
・rubyドリル
<メソッド整理など>
・roundメソッド
引数に桁数を指定するメソッド。例えば小数点第二位まで表示したいときは.round(2)と記載する。
<分かっていなかったこと>
・whereメソッドとLIKE句
「c」が含まれるタイトルの検索方法は、where('title LIKE(?)', "%c%")。検索機能の実装で使うメソッドでモデルに記述する。
<理解していないこと>
・references型/外部キー制約
中間テーブルのマイグレーションファイルに記述する。
t.references :room, foreign_key: true
t.references :user, foreign_key: true
・ルーティングのネスト
・fill_inメソッド
・have_selector,have_contentの違い
指定したセレクタがあるかないかを判断するマッチャがhave_selector。have_contentは指定した文字列があるかどうかを判断するマッチャ。
・クラスメソッドとインスタンスメソッド
クラスメソッドではインスタンス変数(@〇〇)が使えない。
・sliceメソッドとslice!メソッド
array.slice(1) →配列の中から1番目の数値を取り出す。但し配列に影響はない。
array.slice!(1) →配列の中から1番目の数値を取り出す。取り出した数値は配列から削除される。
・afterメソッド
任意の処理の後に指定の処理を実行するメソッド。テストコードでFactoryBot後に画像を保存するコードを作るときなどに使用する。
・DOM
ドキュメントオブジェクトモデルのこと。 HTMLを解析し、データを作成する仕組み。JavaScriptではHTMLを階層として捉えて変換したデータと捉え、そのHTMLの階層を取得し、操作することでプログラムを動かす言語。
javascriptからAjaxによるリクエストを送るためのオブジェクトのこと。
・renderメソッド
JSON形式でデータをサーバーから返却する際には、
render json:{ post: post}
とcreate定義に記載する。
・onload
XMLHttpRequestで定義されているプロパティで、レスポンスの受信が成功した場合に呼び出されるイベントハンドラーのこと。
・セッションとクッキー
webサービスにおいて情報を一時的に保存しておく仕組み。セッションがハッシュの形式でクッキーという保存場所に保存される。
・before_action
コントローラーで処理が被っているときに使用する。具体的には、同じ記述を別のメソッドで定義し、アクションの実行前にbefore_actionを実行させることで記述内容の重複を避ける。
・テーブルにカラムを追加
rails g migration Addカラム名Toテーブル名 追加するカラム型:型
・<em>タグ
斜線で強調するタグ
・devise_parameter_sanitizerメソッド(2回目!)
deviseにおけるparamsのようなもの。deviseGem時に自分で新しく設定したカラムもストロングパラメーターに含めることが可能(nicknameなど)。application_controller.rbに記載する。
・mergeメソッド(2回目!)
ハッシュを結合させるメソッド。使い方は、投稿に関するハッシュとログインユーザーのハッシュを結合させて、投稿とユーザーを紐つけるときに使う。
・N+1問題(2回目!)
アソシエーションによる該当箇所への複数アクセスが起こってしまう問題。解決策はincludesメソッドによる該当モデルの一括取得(コントローラーに「モデル名.includes(:紐付くモデル名)」と記述。)。
・case文
ifを使わない条件分岐
case 対象のオブジェクトや式
when 値1
# 値1に一致する場合に実行する処理
when 値2
# 値2に一致する場合に実行する処理
else
# どれにも一致しない場合に実行する処理
end
<気付き>
とりあえず一通りの機能は実装できたので、
・個別論点の入力←コメント機能の変形
・根拠サイトの貼り付けリンクフォームの実装
を付け加えたい。
タグ付け機能とかは最終課題で習うのかな。色々とやりたいことが増えてくる。
アウトプット11/4
<今日のカリキュラム>
・自主アプリ作成
・rubyドリル
<メソッド整理など>
<分かっていなかったこと>
・case文
ifを使わない条件分岐
case 対象のオブジェクトや式
when 値1
# 値1に一致する場合に実行する処理
when 値2
# 値2に一致する場合に実行する処理
else
# どれにも一致しない場合に実行する処理
end
<理解していないこと>
・references型/外部キー制約
中間テーブルのマイグレーションファイルに記述する。
t.references :room, foreign_key: true
t.references :user, foreign_key: true
・ルーティングのネスト
・fill_inメソッド
・have_selector,have_contentの違い
指定したセレクタがあるかないかを判断するマッチャがhave_selector。have_contentは指定した文字列があるかどうかを判断するマッチャ。
・クラスメソッドとインスタンスメソッド
クラスメソッドではインスタンス変数(@〇〇)が使えない。
・sliceメソッドとslice!メソッド
array.slice(1) →配列の中から1番目の数値を取り出す。但し配列に影響はない。
array.slice!(1) →配列の中から1番目の数値を取り出す。取り出した数値は配列から削除される。
・afterメソッド
任意の処理の後に指定の処理を実行するメソッド。テストコードでFactoryBot後に画像を保存するコードを作るときなどに使用する。
・DOM
ドキュメントオブジェクトモデルのこと。 HTMLを解析し、データを作成する仕組み。JavaScriptではHTMLを階層として捉えて変換したデータと捉え、そのHTMLの階層を取得し、操作することでプログラムを動かす言語。
javascriptからAjaxによるリクエストを送るためのオブジェクトのこと。
・renderメソッド
JSON形式でデータをサーバーから返却する際には、
render json:{ post: post}
とcreate定義に記載する。
・onload
XMLHttpRequestで定義されているプロパティで、レスポンスの受信が成功した場合に呼び出されるイベントハンドラーのこと。
・セッションとクッキー
webサービスにおいて情報を一時的に保存しておく仕組み。セッションがハッシュの形式でクッキーという保存場所に保存される。
・before_action
コントローラーで処理が被っているときに使用する。具体的には、同じ記述を別のメソッドで定義し、アクションの実行前にbefore_actionを実行させることで記述内容の重複を避ける。
・テーブルにカラムを追加
rails g migration Addカラム名Toテーブル名 追加するカラム型:型
・<em>タグ
斜線で強調するタグ
・devise_parameter_sanitizerメソッド(2回目!)
deviseにおけるparamsのようなもの。deviseGem時に自分で新しく設定したカラムもストロングパラメーターに含めることが可能(nicknameなど)。application_controller.rbに記載する。
・mergeメソッド(2回目!)
ハッシュを結合させるメソッド。使い方は、投稿に関するハッシュとログインユーザーのハッシュを結合させて、投稿とユーザーを紐つけるときに使う。
・N+1問題(2回目!)
アソシエーションによる該当箇所への複数アクセスが起こってしまう問題。解決策はincludesメソッドによる該当モデルの一括取得(コントローラーに「モデル名.includes(:紐付くモデル名)」と記述。)。
<気付き>
pictweetの変形でも意外と時間がかかることを痛感。このタイミングでアプリの大枠を作って、最終課題の後にもっと手を加えたい。
アウトプット11/3
<今日のカリキュラム>
・自主アプリ作成
・rubyドリル
<メソッド整理など>
<分かっていなかったこと>
・before_action
コントローラーで処理が被っているときに使用する。具体的には、同じ記述を別のメソッドで定義し、アクションの実行前にbefore_actionを実行させることで記述内容の重複を避ける。
・テーブルにカラムを追加
rails g migration Addカラム名Toテーブル名 追加するカラム型:型
・<em>タグ
斜線で強調するタグ
・devise_parameter_sanitizerメソッド(2回目!)
deviseにおけるparamsのようなもの。deviseGem時に自分で新しく設定したカラムもストロングパラメーターに含めることが可能(nicknameなど)。application_controller.rbに記載する。
・mergeメソッド(2回目!)
ハッシュを結合させるメソッド。使い方は、投稿に関するハッシュとログインユーザーのハッシュを結合させて、投稿とユーザーを紐つけるときに使う。
・N+1問題(2回目!)
アソシエーションによる該当箇所への複数アクセスが起こってしまう問題。解決策はincludesメソッドによる該当モデルの一括取得(コントローラーに「モデル名.includes(:紐付くモデル名)」と記述。)。
<理解していないこと>
・references型/外部キー制約
中間テーブルのマイグレーションファイルに記述する。
t.references :room, foreign_key: true
t.references :user, foreign_key: true
・ルーティングのネスト
・fill_inメソッド
・have_selector,have_contentの違い
指定したセレクタがあるかないかを判断するマッチャがhave_selector。have_contentは指定した文字列があるかどうかを判断するマッチャ。
・クラスメソッドとインスタンスメソッド
クラスメソッドではインスタンス変数(@〇〇)が使えない。
・sliceメソッドとslice!メソッド
array.slice(1) →配列の中から1番目の数値を取り出す。但し配列に影響はない。
array.slice!(1) →配列の中から1番目の数値を取り出す。取り出した数値は配列から削除される。
・afterメソッド
任意の処理の後に指定の処理を実行するメソッド。テストコードでFactoryBot後に画像を保存するコードを作るときなどに使用する。
・DOM
ドキュメントオブジェクトモデルのこと。 HTMLを解析し、データを作成する仕組み。JavaScriptではHTMLを階層として捉えて変換したデータと捉え、そのHTMLの階層を取得し、操作することでプログラムを動かす言語。
javascriptからAjaxによるリクエストを送るためのオブジェクトのこと。
・renderメソッド
JSON形式でデータをサーバーから返却する際には、
render json:{ post: post}
とcreate定義に記載する。
・onload
XMLHttpRequestで定義されているプロパティで、レスポンスの受信が成功した場合に呼び出されるイベントハンドラーのこと。
・セッションとクッキー
webサービスにおいて情報を一時的に保存しておく仕組み。セッションがハッシュの形式でクッキーという保存場所に保存される。
<気付き>
自主アプリを作成するとわかっていないところがよくわかる。あと2回くらい作りたい。
アウトプット10/31
<今日のカリキュラム>
・課題図書(フロント実装・SQL・開発手法と管理・設計思想・オリジン間リソース共有)
<メソッド整理など>
・WebpackerでjQueryを管理
・REST(Representational State Transfer)
webアーキテクチャスタイルのこと。クライアント/サーバーから派生した以下の6つのアーキテクチャスタイルのこと。
ステートレスサーバー/キャッシュ/統一インターフェース/階層化システム/コードオンデマンド
<分かっていなかったこと>
・thisメソッド(Javascript)
イベント発火元の要素を取得することができるメソッド。
<理解していないこと>
・「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後に画像を保存するコードを作るときなどに使用する。
・whileメソッド
無限ループを作るメソッド。条件式が真である間は処理を繰り返す。
・DOM
ドキュメントオブジェクトモデルのこと。 HTMLを解析し、データを作成する仕組み。JavaScriptではHTMLを階層として捉えて変換したデータと捉え、そのHTMLの階層を取得し、操作することでプログラムを動かす言語。
・devise_parameter_sanitizerメソッド
deviseGem時に自分で新しく設定したカラムもストロングパラメーターに含めることが可能。application_controller.rbに記載する。
・ストロングパラメーター
指定したキーのみをもつパラメーターのみを受け取るように制限するもの。
javascriptからAjaxによるリクエストを送るためのオブジェクトのこと。
・renderメソッド
JSON形式でデータをサーバーから返却する際には、
render json:{ post: post}
とcreate定義に記載する。
・onload
XMLHttpRequestで定義されているプロパティで、レスポンスの受信が成功した場合に呼び出されるイベントハンドラーのこと。
・セッションとクッキー
webサービスにおいて情報を一時的に保存しておく仕組み。セッションがハッシュの形式でクッキーという保存場所に保存される。
<気付き>
課題図書も読み終わって、発展カリキュラム完了。明日から3日間は自主制作アプリの時間としよう。他の受講生の作品も見れて刺激になったので自分で作ってみるのは楽しみ。