20200920_アウトプット
今日の学んだこと(Rubyエラー)
ライフコーチが出してくれた問題をもとにチームでエラーについて考えたことが今日一番ためになった。
『Action View::Missing Template』というエラーはどんな状態の時に出るエラーか答えてください。
【ビューを疑おう!】
・コントローラーがビューを探しにいったら無い
・コントローラーのアクション名とビューのページ名に差異がある
など、おおよそビューに原因があるエラーだよ!
『Syntax error, unexpected end-of-input, expecting keyword_end』というエラーはどんな状態の時に出るエラーか答えてください。
【エンドが無いよ(あるいは多いよ)】
・Syntax errorは構文がおかしいというエラー
・今回の場合では、endがキーワードとしてexpecting(期待されている)という意味なのでエンドが足りていない
・VSコードでは「def end]などの「def」をクリックすると、それに対応している「end」に蜘蛛の糸みたいな線が出るのでそれを確認するといいかも
ツイート投稿画面のSENTボタンを押した際、①コントローラーの②アクションに行かねばならない。①と②に入る言葉をそれぞれ答えてください。
【①:tweets ②:create】
・ツイートの話&コントローラーは複数形なので「tweetsコントローラー」が正しい(sつき!)
・この時は「ツイート投稿画面のSENTボタンを押した際」なので、「=ツイート情報が保存される時」となり、createアクションが正しい
ツイートの投稿はできるが、投稿した画像が表示されない。この時に起きている可能性がある問題を2つ答えてください。
【DB周りを疑おう!】
1.うまく保存できていない
2.保存できていないけれど引っ張って来れてない
の2つの原因が考えられる
→まずはシークエルプロ(パンケーキ)をみて1・2どちらなのか見てみよう。上記に応じて、下記のDBまわりに見当つけてエラー原因探しにいくといいかも!
・パラムス(パラムスは「(お客様のデータを載せた)キャリーケース」のイメージ!空港で荷物を預けると機内に載せて目的地へ連れて行ってくれるように、コントローラー目的地へ(そのデータを)連れて行ってくれます。→その載せられたデータがおかしいかも)
・ストロングパラメーター(指定したキーだけ受け取れるように設定するもの。意図しないデータの更新を防ぐ役割がある。→受け取り方法がおかしいかも)
・モデル(データの管理・調整役。コントローラーから指示をもらったら、モデルがDBにデータを取りにいき、DBからの回答を受けて、回答結果をコントローラーに報告している役割。→うまく調整できてないかも。)
・ビュー(→そのもらった内容をブラウザ上で表示できていないのかも。)
ツイートの作成ページにアクセスすると、『undefined local variable or method `user_signed_in’, Did you mean? user_signed_in?』というエラーが出る。この場合は何が原因でエラーが出ているか答えてください。
【「?」漏れだった】
・Railsの場合は、Did you mean?の後に答えを教えてくれるよ(たまに間違ってることもある)
・今回の場合は、「`user_signed_in’,」が、「user_signed_in?」では?と言ってくれている!
その他
- 配列[]は順番に管理するのに便利
- ハッシュ{}は上記にプラスして、キーとバリュー(値)をつけることができる
- digメソッド(ネストされているハッシュを安全に取り出せるメソッド)
理解が浅いところ
- ヘルパーメソッド(フォーム)
- ハッシュ・シンボルの概念 → 10%くらい理解進んだ
- タグ・セレクタ・id
感じたこと
Rubyを理解しないまま、Railsの勉強をしているためか、ハッシュや配列など一番基本中の基本みたいなところが理解が浅い。今日少し復習できてよかった。
気持ちとしては、他の人と比較して、焦ってしまった。
学びたいことたくさんあるが、どれも中途半端で身についていないのでは無いかと感じていることが原因なのかもしれない。(学びたいこと:伊藤さんのRuby本や、カリキュラムや、プロゲートや、ためになるYoutubeなど)
あと、来年度まで時間がないという焦りもある。
焦っていてもしょうがなく、作業量を増やして(一定を保って)一つ一つコツコツ身につけていくしかないと思った。
たくさん選択肢があって必要なところにコミットできていないとも感じたので、戦略を3つに絞ろうと思った。
- Why > How
- 時間を確保する
- 優先順位をつける
1は、「何故この役割があるのか」・「何故この処理をするのか」・「何故こういう経緯になったのか」など「何故」の観点を大事にした方が、応用に活かせると思うため。(Howも大事だが、きっとプログラミングは日々進化するので、Howをググる力や、ポイント抑える程度を目指そうと思っている。)
2は、学習時間を平日4時間、休日10時間と設定して(作業量を決めて)、一定量こなす。
3は、決めた時間の中で、何の優先順位をつけて学習を進めるか決める。
- 約60%はカリキュラムを学ぶ(平日:2時間40分 休日:6時間)
- 約20%はプロゲートまたはRuby入門 を学ぶ(平日:40分 休日:2時間)
(補足)その時に必要な方を選択(カリキュラムの予習・復習になる部分に絞ること)
- 約20%はブログに費やす(平日:40分 休日:2時間)
(補足)休日について、ブログ40分は変えずに、残り1時間20分を他のアウトプットに使う
ためになるYoutubeは趣味なので、息抜きとしてみる(一日30分以内)
上記戦略で進めてみて、改善していく。