RailsでToDoサービスを作ろう(第7回)〜Railsでのデバッグ(byebug)とおまけでbetter_errors〜

にゅ〜ぶる
にゅ〜ぶる

こんにちは、にゅ〜ぶるです。

こんにちは〜、ぶるこだよ〜💕

ぶるこ
ぶるこ
にゅ〜ぶる
にゅ〜ぶる

さて、第7回目!最終回だよ!前回は、こちら
今日は、「Railsでのデバッグ(byebug)とおまけでbetter_errors」について、進めていきたいと思います!

にゅ〜ぶる
にゅ〜ぶる

いつものようにGemfileに追加してbundle installですが、byebugデフォルトで入っているので、既に追加されていれば追加する必要はありません。

にゅ〜ぶる
にゅ〜ぶる

でも一つ覚えておいて欲しいのが、
「group :development do 〜 end」ブロックの間に追加する必要があるということ。
※:testもあるけど

えぇ〜普通に追加したら動かないの?

ぶるこ
ぶるこ
にゅ〜ぶる
にゅ〜ぶる

動かないわけじゃないんだけど、こうすることで、「development環境にのみ追加する」という意味なんだ。
デバッグは開発中の環境でしか動かさない(よね?笑)
だから、こうやって、本番運用時には極力影響がないようにするんだ。

にゅ〜ぶる
にゅ〜ぶる

そしてデバッグとして停止したい箇所に「byebug」と1行追加します。
これがブレイクポイントとなり、実行された際に、そこで一時停止します。

にゅ〜ぶる
にゅ〜ぶる

この状態で、「http://localhost:3000/tasks」にアクセスしてみましょう。
「rails s」で起動したコンソールがこんな感じに変わると思います。

にゅ〜ぶる
にゅ〜ぶる

この状態で、byebugのコマンド等を打つことでデバッグが可能になります。

にゅ〜ぶる
にゅ〜ぶる

必要最低限としては、こんな感じでしょうか。

◆実行関連
「n」…ステップオーバー(next)
「s」…ステップイン(step)
「c」…実行継続(continue)
「fin」…ステップアウト(finish)
restart 最初から実行し直す
◆変数表示
「p 変数名」…変数の中身を表示
「変数名 = 値」…変数に代入
「disp 変数名」…変数をウォッチする
 ※上の実行関連の操作をするたびに変数の中身が表示されます。

わかんない…

ぶるこ
ぶるこ
にゅ〜ぶる
にゅ〜ぶる

そうだね…
デバッグは慣れだと思う。何度もやってみて自分なりでもイイから使い方を覚えて行こう!一つ一つ、デバッグ用に「p 変数」をソースに直書きするより断然早くデバッグできるようになるからね!

にゅ〜ぶる
にゅ〜ぶる

「byebug」はここまで。次は、「better_errors」だよ。
これも、Gemfileに追加してbundle install。
これもdevelopmentの場合にしか使わないから、「byebug」と同じところに追加しようか。

にゅ〜ぶる
にゅ〜ぶる

そして、テスト的に、異常終了させるために、次のようにしてみようか。

にゅ〜ぶる
にゅ〜ぶる

この状態で、「http://localhost:3000/tasks」にアクセスしてみましょう。
エラー画面が変わったのがわかると思います。

適用前
適用後
にゅ〜ぶる
にゅ〜ぶる

好み的なのもあるかもだけどね笑
でも、適用前は、画面下部にirbのコンソールがあったんだけど、なくなっちゃうので、それも追加しておこうね。そのためのGemが「binding_of_caller」。追加方法はもう知ってるよね?!笑

irb追加

わぁ〜追加されたぁ💕

ぶるこ
ぶるこ
にゅ〜ぶる
にゅ〜ぶる

以上!
これでRailsチュートリアルも終了になります。

ありがとうございましたぁ💕

ぶるこ
ぶるこ

最後まで読んでくれてありがとうございました!

Railsのチュートリアル的な感じで、
「Todoサービスを作る!」をテーマにお送りいたしました。
アジェンダは、こちら

質問等ありましたら、コメントなりTwitterなりで頂ければ対応させて頂きますので、遠慮なく利用くださいね。