アウトプット10/11
<今日のカリキュラム>
・JavaScriptの関数を学ぼう
・オブジェクト指向に触れよう
・rubyドリル
<メソッド整理など>
・JavaScriptのメソッド=関数
関数宣言
function 関数名(引数){関数処理}
関数式
変数 = function(引数){関数処理}
無名関数
関数式内のfunction(){}のこと。
即時関数
()の中に関数を記述することにより即実行出来る。関数を呼び出す必要がない。流用する可能性がない関数で使う。
戻り値には「return」の記述が必要。
関数宣言は先に読み込まれるため、先に呼び出しを記述しても問題ないが、関数式は先に読み込まれないためエラーが発生する。
・アロー関数を使うことで「function」を「()=>」と記述出来る。
・ゲッター
「クラス名.インスタンス変数」で記述することでクラス内で定義したインスタンス変数を流用することができる。
<分かっていなかったこと>
・requireメソッド
ライブラリやクラスを読み込むための記述
・whileメソッド
無限ループを作るメソッド。条件式が真である間は処理を繰り返す。
<理解していないこと>
・「placeholder」は、文字をうっすら表示する時に利用
・送信ボタンの実装
・requireメソッド params.require(:モデル名) # 取得したい情報を指定する
・permitメソッド
・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後に画像を保存するコードを作るときなどに使用する。
<気付き>
オブジェクト指向の大切さがわかったので課題図書を侮ってはいけないなと思った。読み返さないと忘れそう。
アウトプット10/10
<今日のカリキュラム>
・chatappの復習
・例外処理を学ぼう
・JavaScriptの概要を学ぼう
・JavaScriptの基礎的な文法を学ぼう
<メソッド整理など>
・Rakeタスク
タスクを実効するコマンド。「rails g task タスクファイル名」で実行する。
・incrementメソッド
テーブルのカラムを引数分だけ増加させるメソッド。
・rails db:seed
動作確認のために投入したいデータを作成できるコマンド。
・begin,rescueメソッド
beginで例外時の想定処理を記述し、rescueで例外時の処理を記述する。
・!はメソッドのよっては例外処理が発生することになる。
・raiseメソッド
例外を発生させる文法。
・トランズアクション
処理の全てを成功か失敗かに分ける。例えば例外処理が発生した場合には全ての処理をキャンセルする時などに使う。
・constとlet
JSでは定義が変わらない変数はconst、変わる変数はletで定義する。
・for文は繰り返し処理
for (変数を定義 ;何回繰り返すかを指定 ;加算式 ){
繰り返す処理
}と記述。
・forEach関数
配列要素を繰り返す記述。
<分かっていなかったこと>
・afterメソッド
<理解していないこと>
・「placeholder」は、文字をうっすら表示する時に利用
・送信ボタンの実装
・requireメソッド params.require(:モデル名) # 取得したい情報を指定する
・permitメソッド
・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は指定した文字列があるかどうかを判断するマッチャ。
・セレクタ
CSSによる装飾を、どの部分のHTMLに適用するかを決める貴記述のこと。通常classで名前付けされている。
・クラスメソッドとインスタンスメソッド
クラスメソッドではインスタンス変数(@〇〇)が使えない。
・sliceメソッドとslice!メソッド
array.slice(1) →配列の中から1番目の数値を取り出す。但し配列に影響はない。
array.slice!(1) →配列の中から1番目の数値を取り出す。取り出した数値は配列から削除される。
<気付き>
カリキュラムの参考文献を舐めてたので確り読み込もうと思う。
今週はJavaScriptを習得したい。非同期通信とか面白そう。
アウトプット10/8
<今日のカリキュラム>
・ModelによるDB操作を学ぼう
<メソッド整理など>
・ORM
RDBのデータをプログラミングにおいてオブジェクトとして使用出来るために変換する技術。
・SQL
RDBを使うための言語。DDL(定義)、DML(操作)、制御(DCL)の3分類に分けられる。
・SELECT文
データベースからデータを取得するSQLの文法(DML)。SELECT <取得したいデータ> FROM <テーブル名>;と記述。
・find_by_sql
Ruby on RailsでSQL文法を使うメソッド。以下のように記述する。
def index
query = "SELECT * FROM tweets"
@tweets = Tweet.find_by_sql(query)
end
<分かっていなかったこと>
<理解していないこと>
・「placeholder」は、文字をうっすら表示する時に利用
・送信ボタンの実装
・requireメソッド params.require(:モデル名) # 取得したい情報を指定する
・permitメソッド
・アソシエーション復習
has_many :モデル複数形
belongs_to : モデル単数
・references型/外部キー制約
中間テーブルのマイグレーションファイルに記述する。
t.references :room, foreign_key: true
t.references :user, foreign_key: true
・ルーティングのネスト
・mergeメソッド
・N+1問題
・テストコードの実装
binding.pry→インスタンス名.errors.full_messages
によってエラーコードを取得。その後に、
expect(インスタンス名.errors.full_messages). to include("エラー文")
・fill_inメソッド
・have_selector,have_contentの違い
指定したセレクタがあるかないかを判断するマッチャがhave_selector。have_contentは指定した文字列があるかどうかを判断するマッチャ。
・セレクタ
CSSによる装飾を、どの部分のHTMLに適用するかを決める貴記述のこと。通常classで名前付けされている。
・クラスメソッドとインスタンスメソッド
クラスメソッドではインスタンス変数(@〇〇)が使えない。
・sliceメソッドとslice!メソッド
array.slice(1) →配列の中から1番目の数値を取り出す。但し配列に影響はない。
array.slice!(1) →配列の中から1番目の数値を取り出す。取り出した数値は配列から削除される。
<気付き>
超疲れた。銭湯行こう。
アウトプット10/7
<今日のカリキュラム>
・rubyドリル
・実践的なcontroller学ぼう
・PC表示時のレイアウト
<メソッド整理など>
・JSON
データを扱うフォーマットのこと。データ形式。
・Active Model
Ruby on railsにおけるモデル機能を動かすためのオブジェクト。
・Callbacksモジュール
任意のタイミングで実行する処理を設定できるモジュール。
・Serializationモジュール
レスポンスとして返すデータを整えることができるモジュール。返すデータを峻別することができる。
・Formオブジェクト
役割は2つ。1つは複数のモデルに関するデータをまとめて更新する場合。もう1つはモデルに存在しないデータを更新する場合。
・width: cal( (100% - 50px) /3 );
class間のmarginを計算するときの記述例。
<分かっていなかったこと>
<理解していないこと>
・「placeholder」は、文字をうっすら表示する時に利用
・送信ボタンの実装
・requireメソッド params.require(:モデル名) # 取得したい情報を指定する
・permitメソッド
・アソシエーション復習
has_many :モデル複数形
belongs_to : モデル単数
・references型/外部キー制約
中間テーブルのマイグレーションファイルに記述する。
t.references :room, foreign_key: true
t.references :user, foreign_key: true
・ルーティングのネスト
・mergeメソッド
・N+1問題
・テストコードの実装
binding.pry→インスタンス名.errors.full_messages
によってエラーコードを取得。その後に、
expect(インスタンス名.errors.full_messages). to include("エラー文")
・fill_inメソッド
・have_selector,have_contentの違い
指定したセレクタがあるかないかを判断するマッチャがhave_selector。have_contentは指定した文字列があるかどうかを判断するマッチャ。
・セレクタ
CSSによる装飾を、どの部分のHTMLに適用するかを決める貴記述のこと。通常classで名前付けされている。
・クラスメソッドとインスタンスメソッド
クラスメソッドではインスタンス変数(@〇〇)が使えない。
・sliceメソッドとslice!メソッド
array.slice(1) →配列の中から1番目の数値を取り出す。但し配列に影響はない。
array.slice!(1) →配列の中から1番目の数値を取り出す。取り出した数値は配列から削除される。
<気付き>
なんとか平日もよく勉強できている。この調子で頑張っていきたい。
タイピングのスピードをあげたい。どうすればいいんだろう。
アウトプット10/6
<今日のカリキュラム>
・rubyドリル
・実践的なcontroller学ぼう
<メソッド整理など>
<分かっていなかったこと>
・sliceメソッドとslice!メソッド
array.slice(1) →配列の中から1番目の数値を取り出す。但し配列に影響はない。
array.slice!(1) →配列の中から1番目の数値を取り出す。取り出した数値は配列から削除される。
<理解していないこと>
・「placeholder」は、文字をうっすら表示する時に利用
・送信ボタンの実装
・requireメソッド params.require(:モデル名) # 取得したい情報を指定する
・permitメソッド
・アソシエーション復習
has_many :モデル複数形
belongs_to : モデル単数
・references型/外部キー制約
中間テーブルのマイグレーションファイルに記述する。
t.references :room, foreign_key: true
t.references :user, foreign_key: true
・ルーティングのネスト
・mergeメソッド
・N+1問題
・テストコードの実装
binding.pry→インスタンス名.errors.full_messages
によってエラーコードを取得。その後に、
expect(インスタンス名.errors.full_messages). to include("エラー文")
・fill_inメソッド
・have_selector,have_contentの違い
指定したセレクタがあるかないかを判断するマッチャがhave_selector。have_contentは指定した文字列があるかどうかを判断するマッチャ。
・セレクタ
CSSによる装飾を、どの部分のHTMLに適用するかを決める貴記述のこと。通常classで名前付けされている。
・クラスメソッドとインスタンスメソッド
クラスメソッドではインスタンス変数(@〇〇)が使えない。
<気付き>
土日に旅行した分を月曜の有給でなんとか取り戻せた感じ。今週末までにはjavaに入れるようにカリキュラムを進めたい。
アウトプット10/5
<今日のカリキュラム>
・rubyドリル
・chatappの結合テストコードを書こう
<メソッド整理など>
・Rails.root.join
テストコードで使用したメソッド。railsアプリのトップ階層から指定のファイルを返すことができる。例えば、画像を返したい時には
Rails.root.join('トップ階層から画像ファイルの保存場所')
とすれば画像を返すことができる。
・attach_fileメソッド
テストコードでしたメソッド。input要素にテスト画像を添付することができるメソッド。オプションの「make_visible: true」を使って見えるようにする。
・downcaseメソッド
配列の中の大文字を小文字に変換するメソッド
・countメソッド
配列の中に任意の数値がいくつあるかを返すメソッド
<分かっていなかったこと>
・fill_inメソッド
・have_selector,have_contentの違い
指定したセレクタがあるかないかを判断するマッチャがhave_selector。have_contentは指定した文字列があるかどうかを判断するマッチャ。
・セレクタ
CSSによる装飾を、どの部分のHTMLに適用するかを決める貴記述のこと。通常classで名前付けされている。
・クラスメソッドとインスタンスメソッド
クラスメソッドではインスタンス変数(@〇〇)が使えない。
<理解していないこと>
・複層ハッシュからの特定データ取得方法
eachメソッドを使う
・論理演算子(重要!!)
# aもbもtrueの場合にtrue → a && b 及び
# aかbのどちらかがtrueの場合にtrue → a || b いずれか
# aがtrueの場合にfalse、aがfalseの場合にtrue → !a 逆
・ER図
DBのテーブルを図で表したもの。
・エンティティ
サービスで扱われるデータ自体のこと。データが登録されるときに発生する。
・「placeholder」は、文字をうっすら表示する時に利用
・送信ボタンの実装
・requireメソッド params.require(:モデル名) # 取得したい情報を指定する
・permitメソッド
・アソシエーション復習
has_many :モデル複数形
belongs_to : モデル単数
・references型/外部キー制約
中間テーブルのマイグレーションファイルに記述する。
t.references :room, foreign_key: true
t.references :user, foreign_key: true
・ルーティングのネスト
・mergeメソッド
・N+1問題
・render partial:
部分テンプレートの呼び出すときの記述。renderが部分テンプレートを呼び出すメソッドで、どの部分テンプレートを呼び出すかはpartial: "部分テンプレートの名前"で決める。collectionオプションと組み合わせる。
・テストコードの実装
binding.pry→インスタンス名.errors.full_messages
によってエラーコードを取得。その後に、
expect(インスタンス名.errors.full_messages). to include("エラー文")
<気付き>
土日に旅行した分を月曜の有給でなんとか取り戻せた感じ。今週末までにはjavaに入れるようにカリキュラムを進めたい。
アウトプット10/4
<今日のカリキュラム>
・rubyドリル
・chatappのモデル単体テストコードを書こう
・chatappの結合テストコードを書こう
<メソッド整理など>
<分かっていなかったこと>
・テストコードの実装
binding.pry→インスタンス名.errors.full_messages
によってエラーコードを取得。その後に、
expect(インスタンス名.errors.full_messages). to include("エラー文")
<理解していないこと>
・複層ハッシュからの特定データ取得方法
eachメソッドを使う
・論理演算子(重要!!)
# aもbもtrueの場合にtrue → a && b 及び
# aかbのどちらかがtrueの場合にtrue → a || b いずれか
# aがtrueの場合にfalse、aがfalseの場合にtrue → !a 逆
・ER図
DBのテーブルを図で表したもの。
・エンティティ
サービスで扱われるデータ自体のこと。データが登録されるときに発生する。
・「placeholder」は、文字をうっすら表示する時に利用
・送信ボタンの実装
・requireメソッド params.require(:モデル名) # 取得したい情報を指定する
・permitメソッド
・アソシエーション復習
has_many :モデル複数形
belongs_to : モデル単数
・references型/外部キー制約
中間テーブルのマイグレーションファイルに記述する。
t.references :room, foreign_key: true
t.references :user, foreign_key: true
・ルーティングのネスト
・mergeメソッド
・N+1問題
・render partial:
部分テンプレートの呼び出すときの記述。renderが部分テンプレートを呼び出すメソッドで、どの部分テンプレートを呼び出すかはpartial: "部分テンプレートの名前"で決める。collectionオプションと組み合わせる。
<気付き>