本日先輩から教わった、binding.pryのデバッグのやり方についてまとめます。
下準備
$ gem install pry-byebug
gemをインストールして、準備完了です。
binding.pryの使い方
- コードの処理がどこまでうまく動いてくれているか
- 特定のポイントで処理がどうなっているのか
コードの処理を止めて確認したい箇所に”binding.pry"と打つことで調べることができます。
ruby.qiita.rb
def index
member = params[:member]
if member >= 5
puts "5人より多い"
else member <= 3
puts "3人より少ない"
end
end
このようなコードがあった場合、例えば
ruby.qiita.rb
def index
member = params[:member]
binding.pry
if member >= 5
puts "5人より多い"
else member <= 3
puts "3人より少ない"
end
end
このように確認したい変数の直後に打ちます。
binding.pryでできること
binding.pryを追加した後、該当するコードをサービス側で動かしてみます。
すると、binding.pryを追加した箇所で処理が止まります。
そこで、サーバーを立てているターミナルを確認すると以下のような画面で処理の詳細・途中経過を確認することができます。
#ターミナル
1:def index
2: member = params[:member]
3: binding.pry
=> 4: if member >= 5
5: puts "5人より多い"
6: else member <= 3
7: puts "3人より少ない"
8: end
9:end
[1] pry(#<該当するファイル名>)> member
=> 5
このpry〜から始まる画面で状態を知りたい変数名を入れることで、
その処理のタイミングでは対象の変数がどんな状態になっているか確認することができます。
また、計算式を入れて確認することもできます。
[1] pry(#<該当するファイル名>)> member - 5
=> 0
また、計算式を入れて変数の状態を確認することもできます。
少し調べてみて、まだまだ使い方の奥が深いと感じていますので引き続き勉強していきます。
今日はこのあたりで、失礼します。
参考サイト
〜変数の中身を確認〜 binding.pryでデバッグする(初心者の方向け)
https://qiita.com/tomoharutsutsumi/items/6b12af3dc5eb8dfb9801