デバッグ方法について。アプリ開発で必ず必要な技術。サイト」作成中の僕が、プログラミングをしている中で気づいたことや学んだことを書いております。CODE」で学んでいることや、ネットで見つけた様々な記事を参考に記事を作成しております。前回(【JavaScript】アプリで実装したい機能のアルゴリズムを考える)では、実装したい機能を開発するための流れを、フローチャートを作成しつつ考えました。今回はrailsアプリ開発の中で、エラーの原因を探りデバッグするために多用する「binding.pry」について書いていきます。デバッグとはデバッグとは、エラーの原因を特定し解決することです。僕の場合エラーがしょっちゅう出るので、デバッグできないと全く前に進みません。書いたコーディングを途中で止め、その前後のデータの中身やメソッドが効いているかどうかを確認し、エラーの原因を突き止めてデバッグする方法を紹介します。Railsにおけるデバッグの方法エラーを原因を特定する(ブレークポイントの設置)デバッグは「エラーを探る」ことから始まります。どのコーディングが間違っているか、エラーの原因になっているかを特定しないと修正しようがありません。ここで大事になってくるものが、「ブレークポイント」です。ブレークポイントとはプログラムの任意の場所で実行を停止させるその「場所」のことです。プログラムはコーディングの順に、上から下へ処理が進んでいきます。この処理の流れを「ブレークポイント」を仕込ませることで、意図的に途中で止めることができます。することで、「仕込ませたブレークポイントまでの処理」が適切に進んでいるかどうかを確認することができます。以下、ブレークポイントを利用しデバッグをする方法を書いていきます。今回の(というより僕はこれしか使えない)デバッグ方法は、「binding.pry」を用いて行います。rails開発環境が整っている前提で進めます。'pry-rails'省略endgemfileに上のコードを記入。install」を実行。2、ブレークポイントを仕込むcontrollers/itimon_ittous_controller.rbこの「binding.pry」が「ブレークポイント」です。@questions」までの処理が実行され、そこで止まります。実際にサーバーを起動し、itimon_ittous_controllerの「index」アクションを呼びだし、コンソールを確認すると、このようにコンソール画面が映ります。ブラウザは開かず、止まった状態になります。(コントローラのアクションを途中で止めたためです。)railsだったらこのようにrbファイルに直接書き込みますし、controllerだけでなくviewにも書くことができます。3、pry(Rubyの対話コンソール)でデータの取得を確認ブレークポイントを仕込み、止めることに成功したら、後は何がうまく行ってないかを確認していく作業になります。」というのがあると思います。ここに書き込んで調査していきます。@questions上に書いた二つは完了しているはずです。@count「binding.pry」以降に書いてあるこれらの変数は定義されておりません。pryに打ち込んで確認します。「gon.questions」は入っています。「@fields」や「@count」などの「binding.pry」より下に定義した変数は定義されておりません。ブレークポイントを用いることで、その前後の変数がちゃんと定義されているかを確認できます。ブレークポイントよりも手前の変数やメソッドが機能していなかった場合、そこがエラーの原因だとわかる訳です。その他のデバッグ方法1、raiseメソッド「raise」メソッドは、railsにあらかじめ備わってるデバッグ用のメソッドです。「binding.pry」と同じようにブレークポイントを仕込むことができます。対話コンソール「pry」が自動で立ち上がらないので、「pry-rails」というGemをインストールした方がやりやすいです。"better-errors"の利用ブラウザのエラー場面でpryが起動し確認できるデバッグ方法です。こちらも入れておくと、不意のエラーもブラウザ上で原因が探れます。'binding_of_caller'end「pry-rails」と同じです。install」するだけです。まとめ今回はデバッグ方法、binding.pryのやり方について書きました。最初は使い方分からなかったのですが、アプリ開発していく中で嫌でも使わないと先に進むことが出来ないので、徐々に使いこなせるようになりました。JavaScriptのコンソールでは「debugger」も使ってます。早くアプリ完成させたいです。以上ありがとうございました。コメントをキャンセルメールアドレスが公開されることはありません。コメント名前メールアドレスサイト上に表示された文字を入力してください。LABコース学習記録。今回は卒業制作に向けた事業計画の考え方について。