補助テキスト

debuggerの使い方

pepe87

テキストの概要

このテキストでは、「debugger」の使い方の練習をしていきます。

「debugger」はサーバーの処理を途中で止められるので、今どのコードが動いているのかを確認するのに有用です。

処理を途中で止めることで、コードがどの順番で何をしているかの理解が深まります。

テキストのゴール

  • debbugerで処理が止められる
  • debbugerを終了する方法が理解できている

toy_appをCodeSpaceで開く

railsチュートリアル2章で作成したtoy_appのCode Spaceのタブが残っている方はスキップしてください。

Githubのページから「Repositories」をクリックし、Railsチュートリアル2章で作成したリポジトリが見つけられたらクリックします。

※テキストではtoyという名前のリポジトリにしています

リポジトリの詳細が表示されたら、「Code→CodeSpaces→On current branchの下」を順にクリックします。

すると、toyリポジトリのCodespaceが開かれます。

debuggerでmicropostの一覧表示を止めてみる

toy_appのCodeSpaceが開けたら、早速debuggerを使っていきます。

「microposts_controller.rb」を開き、以下7行目のようにdebuggerを追記します。

microposts_controller.rb
1class MicropostsController < ApplicationController
2  before_action :set_micropost, only: %i[ show edit update destroy ]
3
4  # GET /microposts or /microposts.json
5  def index
6    @microposts = Micropost.all
7    debugger
8  end
9101112end
13

そして、サーバーが起動できていなかったら、「rails server」コマンドでサーバーを起動します。

urlバーの最後尾に、「microposts」を入力すると、「debugger」が起動していることがターミナル、コンソールから確認できます。

micropostsをurlバーに入力されたら、以下画面が表示されるはずなのですが、上の動画では表示されていないことがポイントです。

これは、処理が途中で止まったことにより、HTMLが返却されていないことを示しています。

また、コントローラーのdebuggerが呼び出されて処理が止まっているので、コントローラーまでは動いているとも言えます。

モデル、データベース(DB)まで処理ができているか確認

debuggerで処理がとめられたら「@microposts」とターミナル、コンソールに入力し、データがDBから取得できているか確認してみます。

以下の様にmicropostsのデータが取得されていることが確認できます

これは、コントローラーがモデルに命令し、DBから保存された値を取得できていることを意味します。

次に、debuggerの位置を7行目から6行目にかえましょう。

microposts_controller.rb
1class MicropostsController < ApplicationController
2  before_action :set_micropost, only: %i[ show edit update destroy ]
3
4  # GET /microposts or /microposts.json
5  def index
6    debugger
7    @microposts = Micropost.all
8  end
9101112end
13

先ほどのdebuggerの処理は一度終了したいので、「c」を押して、Enterを押しましょう。

その後、ウィンドウを再読み込みし、debuggerで処理が止まったら「@microposts」と入力しましょう。

先ほどと違い、@micropostsと入力した時に、「nil」と表示されているのがポイントです。

「nil」とは「空のデータ」を意味するので、コントローラーがDBからデータを取得できていないことを表しています。

また、7行目がモデルに命令して、DBからデータを取り出しているコードであることもわかります。

※コードの詳細は今はわからなくて大丈夫なので、MVCの確認方法だけ覚えましょう。

テキストのゴールのチェック

  • debbugerで処理が止められる
  • debbugerを終了する方法が理解できている

上記のゴールが達成できたか確認しましょう。

コードの意味やMVCの動きが現時点で理解できていないくても大丈夫です。

MVCの何が動いているか、という意識を持ち、積極的にdebuggerで処理を止めてみることを意識して学習を進めていきましょう。

記事URLをコピーしました