はじめに
この記事は下記を参考させていただきました。
https://pikawaka.com/rails/pry
Pryとは、Rubyのirbのようにrailsのコンソールでメソッドなどを使えることができるようになる機能です。
pry-railsの導入
pry-railsはコンソールを立ち上げたとき、irbでなくpryを起動させることができるgemです。
デフォルトでは、rails cコマンドでコンソールモードにした際、irbが起動します。
下記のようにgemを追加しbundle installを実行することで、pryを使えるようになります。
# 省略
gem 'pry-rails`
binding.pry
記述した箇所で処理を止めることができます。
自分はデバックとテストに用いています。
デバッグとは、任意でない処理(バグ)を見つけることです。
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」と入力し、中身を確認することができます。

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