プログラミング勉強日記2(1/18-24)

プログラミングの勉強をし始めてから2週目になった。

 

【1/18-24】

週勉強時間:10時間3分

合計勉強時間:21時間36分

 

 何とか先週より勉強時間を確保できた。1回だけでは理解が追い付いていない部分があったため、2週目を行う部分もあった。

 来週は休みが少し多いので、勉強時間をしっかりと確保していきたい。Ruby on Railsについても少しずつ知識を深めていければと思う。

 以下は日々の進捗具合や気づきのメモである。

1/18

「学習コース Ruby IV」の11. initializeメソッド(1)を修了。特に引っかかる部分はなかった。

復習したら、先週つまづいた「10. クラスとインスタンスの復習」が理解できた。躓いてしまった部分は後でおさらいしておくといいのかもしれない。

 

1/19

「学習コース Ruby IV」「学習コース Ruby V」「Webについて知ろう!」「Webアプリケーションについて知ろう!」を修了。

「学習コース Ruby V」の「15. クラスメソッドの呼び出し」で少しつまづく。

f:id:uchi_hiro:20210119213415p:plain

「get_total_priceメソッドの中で、以下の条件のif文を作成」という課題だ。

「引数countが1以上、かつMenu.is_discount_day?の結果がtrueである」という条件で、今考えればかなりシンプルなコードであるが、trueの文字に引っ張られすぎてしまい23行目に「Menu.is_discount_day? == true」と記述してしまった。

画像では見えていないが、下でMenu.is_discount_day?を定義しているのだから、わざわざ「==true」にする必要がない。つけた状態でもOKが出たが、本当にOKだったのだろうか。

 

1/20

  Progateの「学習コース Ruby on Rails5 I」を修了。「学習コース Ruby on Rails5 II」を14個目まで進める。

 Ruby on Rails5では様々なファイルを行ったり来たりするため、まだ頭の中で消化しきれていない気がする。

f:id:uchi_hiro:20210120211219p:plain

 今日の失敗。4行目を<a href="/top">TweetApp</a>にしていた。topページにアクセスするのだからtopをつけたほうがいいのだろうと考えてしまったためだ。

 明日もRuby on Rails5について学習していきたい。

 

1/21

 Progateの「学習コース Ruby on Rails5 II」「学習コース Ruby on Rails5 III」を修了。

 Twitterのようなツールの投稿詳細ページと、新規投稿ページの作成を進めていった。ただ投稿フォームを作っても、投稿されるわけではない。フォームとして機能させるためには「createアクションに対応するビューを用意する」「投稿を保存する」必要がある。当たり前なのだが、理屈を聞くとなるほどなと思う。

 明日からは説明に沿って作っていた投稿サービスを、実際に作っていきたい。

 

1/22

 Progateでツイートアプリを作成する課題。1回学習していてもなかなか使いこなすことができない。

 以下メモ。

 

・コマンドは1回しか使えない

→TOPページをコマンドで使った後、Aboutページも同じ手法で作ろうとしたら以下の画面になる。

f:id:uchi_hiro:20210122210756p:plain

 上書きしようとしているのだろう。もう一度スライドを読み直し、ルーティング・アクション・ビューの追加を行うことを確認。

 

・共通のレイアウトをまとめる

→application.html.erbには、<%= yield %>というコードがある。

各ビューファイルは<%= yield %>の部分に代入され、application.html.erbの一部としてブラウザに表示されるとのこと。

 ヘッダーなどを<%= yield %>の上に記述することで、共通のレイアウトを作成することができる。いちいちページごとにヘッダーを書く必要がないため、簡潔になる。

 

・データベースにpostsテーブルを追加

①データベースに変更を指示するためのファイル(マイグレーションファイル)を作成。

→「rails g model Post content:text」でマイグレーションファイルの作成が可能。textは長い文章を表す。

マイグレーションファイルの内容をデータベースに反映させる

→コマンド「rails db:migrate」を実行。

 

・テーブルにデータを保存する

rails consoleでコンソールを立ち上げる。

②Postモデル(Postクラス)からPostインスタンスを作成。newメソッドを用いる。

(例)post = Post.new(content: "うどん")

③saveメソッドを使う

(例)post.save

うどんがテーブルに保存される。

※最後はquitで終了する。

 

1/23

 「道場コース Ruby on Rails5 I」を引き続き進める。

 以下メモ。

 

・Post.all

→全てのデータを取得できる

・orderメソッド

→取得したデータを並び替えることができる。昇順(:asc)と降順(:desc)のいずれかを指定する

(例)order(カラム名: 並び替えの順序)

・昇順と降順

→日付や数字が古い/小さいほうから並ぶのが昇順。対して、日付や数字が新しい/大きいほうから並ぶのが降順。

 

1/24

「道場コース Ruby on Rails5 I」を修了。抜け落ちている部分が多かったため、「学習コース Ruby on Rails5 I」をもう一度行う。

 仕組みが理解できてくると、理解度も変わってくるような気がする。2週目のほうがやはり知識を飲み込みやすい。

 以下メモ。

 

以下メモ

・新しいrailsアプリケーションを作成する

→「rails new アプリケーション名」

・サーバーの起動

→コマンド「rails server」を実行。

・Topページの作成

→「rails generate controller ファイル名 ページ名」

 (例)「rails generate controller home top」

  実行すると以下のような画面に。

f:id:uchi_hiro:20210124232910p:plain

Rails でページを表示するには、「ビュー」「コントローラー」「ルーティング」が必要。

・ビューとは、ページの「見た目」を作るためのHTMLファイルのこと。

・ページを表示するとき、コントローラを経由してビューをブラウザに返す。コントローラーが仲介の役割を持っている。

・コントローラ内のメソッドのことを「アクション」と呼ぶ。

・ブラウザとコントローラを繋ぐ役割を受け持っているのがルーティング。ページが表示する際、ルーティング→コントローラ→ビューという順で処理される。

・ルーティングは「get "URL" => "コントローラー名#アクション名"」で表記される。

 

 昨日よりも理解が深まるように、日々学習していきたい。