2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Rails] pry-rails の導入〜 binding.pryのデバック用法

Last updated at Posted at 2021-01-03

はじめに

この記事は下記を参考させていただきました。
https://pikawaka.com/rails/pry

Pryとは、Rubyのirbのようにrailsのコンソールでメソッドなどを使えることができるようになる機能です。

pry-railsの導入

pry-railsはコンソールを立ち上げたとき、irbでなくpryを起動させることができるgemです。
デフォルトでは、rails cコマンドでコンソールモードにした際、irbが起動します。
下記のようにgemを追加しbundle installを実行することで、pryを使えるようになります。

Gemfile
# 省略

gem 'pry-rails`

binding.pry

記述した箇所で処理を止めることができます。
自分はデバックとテストに用いています。
デバッグとは、任意でない処理(バグ)を見つけることです。

books_controller.rb
 def create
    @book = BookOrder.new(bookorder_params)
    binding.pry
    if @book.save
      redirect_to root_path
    else
      render :index
    end
  end

binding.pryで処理を止めると、ターミナルが下記のようになりました。
コンソールが起動し、入力待ちの状態です。
ここで「params」「@book」と入力し、中身を確認することができます。
Image from Gyazo


下記はbinding.pry実行中に使えるコマンドの一例です。
良かったら公式も見てみてください。
https://github.com/rweng/pry-rails

コマンド 内容
step ステップイン
next ステップオーバー
finish ステップアウト
continue デバッグを終了する(中断していた処理を続行)
[変数名] 変数の中身を出力
$ [メソッド名] メソッドの定義をみる
show-stack スタックとレースをみる(要 pry-stack-explorer)
!!! プロセスを終了する。 その後に何個 binding.pry があっても抜けられるが rails s などは終了する
show-routes 現在のルーティングを確認
show-models 現在のモデルを確認
show-source クラスやモジュール、メソッドの定義を確認
show-doc クラスやモジュール、メソッドのドキュメントを確認

おわりに

Railsでは、「MVCの流れ」と、「今自分は何の為に何をやっているのか」を常に把握しておくことが伸びるコツだなあと日々感じております。
初学者ならではの辛さもあるかと思いますが、プログラミングは楽しいし、
未来の自分にとって最高級の投資だと思いますので、
学びを楽しんでいきましょう!

2
0
0

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
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?