LoginSignup
100

More than 3 years have passed since last update.

posted at

デバックツール(pry-rails)について binding.pryの使い方

はじめに

デバックツールとは

一般的にデバックツールとはプログラムの作業を行う際に、バグの有無、エラーの原因箇所、コード上の問題がないかなどを確認するために用いるツールのことをいいます。

pry-rails

pry-railsとは

Rails用に使われるデバックツールのことをいい、Gemの一種であるため、使用をする際は以下の様にGemfileに追加する必要があります。

Gemfile
gem 'pry-rails'

Gemの追加を行ったため、ターミナルで以下のようにbundle installを忘れずに行いましょう。

$ bundle install

これでpry-railsが使えるようになります。

binding.pryとは

pry-railsを導入したことでpry-railsの機能が使えるようになりました。pry-railsの機能の一つにbinding.pryがあります。

binding.pryはコード上にbinding.pryを記述することで
binding.pryの書かれている箇所までの処理を実行し、
binding.pryの書かれている箇所で処理を一時的に止めることができます。

使用方法

以下の様に、処理の確認をしたいコードの箇所に
binding.pryを記述します。

tweets_controller.rb
class TweetsController < ApplicationController
    def index
      @tweets = Tweet.all
      binding.pry
    end
end

記述をし、実行を行うとターミナルのローカルサーバー画面が以下のような表示になり、
binding.pryの記述している箇所で処理が止まります。

   3: def index
   4:   @tweets = Tweet.all
=> 5:   binding.pry
   6: end

  [1] pry(#<TweetsController>)>

この状態ではコンソールと似た操作ができるので
@tweets.find(6)のようなApplicationRecordメソッドを使い、binding.pryが書かれている箇所までの処理の値を確認することができます。

処理停止状態を終了させるには以下のようにexitを入力することで停止状態が終了し、binding.pry以降の処理を実行します。

  [1] pry(#<TweetsController>)>exit

ちなみにexit!を入力するとローカルサーバーも終了します。

おわりに

以上pry-railsの説明とpry-railsでよく使うbinding.pryについてまとめました。
デバックツールはプログラミングをする上で非常にお世話になると思うので覚えておこうと思います。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
100