6日目
今日の学習
Ruby
簡単なアプリの作成
とにかく自分の頭でプログラムを作ってみるのが一番いい、とのことなので、最初は簡単なクイズのプログラムを作ってみる。
今日できた分。
#何問目か表示 count_q = 1 #得点加算 count_point = 0 quiz = "整数のオブジェクト名は何でしょうか?" answer = "Integer" hint = "I○○○○r" puts <<~TEXT Rubyに関するクイズです。 TEXT for count_q in 1..10 puts <<~TEXT #{count_q}問目 #{quiz} *「hint」と入力すると、ヒントが出ます* TEXT loop do guess = gets.chomp if answer == guess puts <<~TEXT 正解です! ------------------------------ TEXT count_point += 10 count_q += 1 break elsif guess == "hint" puts <<~TEXT #{hint} 答えを入力してください! TEXT else puts <<~TEXT 不正解です... 答えは、#{answer}でした ------------------------------ TEXT count_q += 1 break end end end puts "100点満点中「#{count_point}」点でした!"
とりあえず、入力を受け付けてくれる、答えが合っていると加点される、ちゃんと10問出題されると終了する...という部分はしっかりと動いてくれたっぽい?
しかし、このままでは永遠にIntegerを要求するbotになってしまうので、明日は問題を増やす方法を模索したい。
できれば、30問ほど用意して、その中からランダムに10問出題するというような形を取りたい。
とりあえず今日は雛形を作ったところで終了。
途中でやめる手段も用意したい。回答の大文字と小文字を区別しないようにしたい。...と、改善点が現時点で山盛りになっている。
モジュール
モジュールについて学習したが、いまいちどの場面で使うべきなのかピンときていない。
名前空間に対しても、分かったようで分からんという状態。
Railsの中でよく見た::
の正体が分かったという点で若干進展があった。
【Ruby/namespace】Rubyでよく見る「:: ←これ」を深ぼる - Qiita
この記事が分かりやすかった。
メソッド呼び出しの後に使っていたドット.
は、::
の代替(省略形)だった...。
知らず知らずのうちに色んなものの省略形を、省略形と認識せずに学んでいることが非常に心配。
Ruby on Rails
CRUD処理の実装
Progateでは、HTTPメソッドでget
、post
しか使わなかったが、patch
、delete
というものがあることを知った。
更新のためのメソッドを利用すると、更新ページの入力欄にあらかじめ登録されている情報がすでに入力されていて感動した。
最初はルーティングにしっかりURLを書いて...というやり方で練習をしたが、resources
を使うことにより全てを賄えることを知って脱帽。
ProgateでRailsをやっていたとき、URLを間違えたり誤字があったりでエラーが頻発していた上に、erbファイルに記載するときも詰まりがちだったので、これだけで飛躍的にエラーを回避できるのではないか...?
学習メモ
rails g controller
では、使わないファイルも作成されてしまうため、コントローラーは個別で作る方がよい(モデルはコマンドでOK)- ビューファイルにデータを受け渡す必要がない場合は、インスタンス変数(@)を使用しなくてもよい
rails routes
Railsアプリに用意されているルーティングを確認できる- モジュール内のメソッドを実行する場合は、モジュール名の後ろに
::
をつける - 入力を受け付ける際は
chomp
メソッドを使い、改行されないようにする
余談
トラックパッドでの操作が面倒くさい。
普段PCを使う際はマウスを使用していたので、スムーズに動かせない(まだ慣れていないという部分は大いにある)。
マウスを操作する時間を省ける、効率がいいというメリットがあることははよく分かるが、いい加減マウス操作がしたくなってきたので、適当なマウスを購入する予定。